#include <bits/stdc++.h>
using namespace std;
void solve(long long tc) {
  long long n, m, k;
  cin >> n >> m >> k;
  vector<long long> v(n);
  for (long long i = (0), ed = (n); i < (ed); ++i) {
    cin >> v[i];
  }
  sort(v.begin(), v.end());
  unsigned long long mx1 = v[n - 1], mx2 = v[n - 2];
  if (0)
    cout << ":>>   "
         << "mx1"
         << " : " << mx1 << '\n',
        cout << ":>>   "
             << "mx2"
             << " : " << mx2 << '\n';
  unsigned long long ans = mx2 * (m / (k + 1));
  if (0)
    cout << ":>>   "
         << "ans"
         << " : " << ans << '\n';
  m = m - (m / (k + 1));
  ans += mx1 * m;
  cout << ans << '\n';
}
int32_t main() {
  solve(1);
  return 0;
}
