#include <bits/stdc++.h>
using namespace std;
long long int a, b, c, d, i, j, k, l, o, p, q, arr1[200005];
vector<int> ve, ve1;
set<int> se, se1;
map<int, int> mp, mp1;
int main() {
  scanf("%lld %lld %lld", &a, &b, &c);
  for (i = 0; i < a; i++) {
    scanf("%lld", &arr1[i]);
  }
  sort(arr1, arr1 + a);
  d = b / (c + 1);
  p = 0;
  p += ((d) * (arr1[a - 2]));
  p += ((b - d) * (arr1[a - 1]));
  printf("%lld\n", p);
  return 0;
}
