#include <bits/stdc++.h>
using namespace std;
struct seg {
  long long d[(1 << 20)];
  int n;
  void init(int _n) {
    memset(d, 0, sizeof(d));
    while (n < _n) n *= 2;
  }
  void add(int a, int b, int k, int l, int r, long long x) {
    if (r <= a && b <= l) return;
    if (a <= l && r <= b)
      d[k] += x;
    else {
      add(a, b, 2 * k + 1, l, (l + r) / 2, x);
      add(a, b, 2 * k + 1, (l + r) / 2, r, x);
    }
  }
  long long get(int k) {
    k += n - 1;
    long long ret = d[k];
    while (k > 0) {
      k = (k - 1) / 2;
      ret += d[k];
    }
    return ret;
  }
  void add(int a, int b, long long x) { add(a, b, 0, 0, n, x); }
};
long long N, P, Q;
int main() {
  cin >> N >> P >> Q;
  long long res = 0;
  long long now = Q;
  for (int i = 0; i < N; i++) {
    res += (Q + i) * P;
    long long c;
    cin >> c;
    if ((long long)(now + N - i - 1) * P < c) {
      res -= (long long)(now + N - i - 1) * P;
      res += c;
    }
    now++;
  }
  cout << res << endl;
}
