#include <bits/stdc++.h>
using namespace std;
const long long INF = 0x3f3f3f3f3f3f3f3f;
const long long BIG = 2e9;
const int maxn = 200005;
multiset<long long> gao;
int A[maxn];
int main() {
  int n, k, a, b;
  scanf("%d%d%d%d", &n, &k, &a, &b);
  for (int i = 1; i <= n; i++) {
    scanf("%d", A + i);
  }
  a = min(a, b * 5);
  sort(A + 1, A + 1 + n);
  long long ans = INF;
  for (int mod = 0; mod < 5; mod++) {
    const long long F = BIG + mod;
    gao.clear();
    long long res = 0;
    for (int i = 1; i <= n; i++) {
      long long tmp = (F - A[i]) / 5 * a + (F - A[i]) % 5 * b;
      res += tmp;
      gao.insert(-tmp);
      if (gao.size() > k) {
        res += *gao.begin();
        gao.erase(gao.begin());
      }
      if (gao.size() == k) {
        ans = min(ans, res - (F - A[i]) / 5 * a * k);
      }
    }
  }
  cout << ans << endl;
  return 0;
}
