#include<iostream>
#include<algorithm>
//想定解に時間計算量O(NlogN)のsort関数が必要でなので、C++で書きます。C言語だと面倒
long long max(long long a,long long b){return (a > b ? a : b);}
int  main(){
    long long N,P,Q;
    scanf("%lld%lld%lld", &N,&P,&Q);
    
    long long c[500000+ 1] = {};
    long long uprange[500000 + 1] = {}; //i日目に自炊すると全体の幸福度に与える影響
    long long sum = 0; // sum := 全部食堂に行ったときの幸福度
    for(int i = 0; i < N; ++i){
        scanf("%lld",c+i);
        sum += c[i];
    }
    for(int i = 0; i < N; ++i){
        uprange[i] = -c[i] + (Q - i) * P;
    }
    //sort
    //自炊に切り替えたときに増える幸福度が大きい順にsortする
    std::sort(uprange,uprange + N,std::greater<long long>());
    
    
    long long ans = sum;
    long long crt = sum;
    long long tq = 0; // tq日自炊すると考える
    for(int i = 0; i < N; ++i){
        //1日自炊する日が増えると、それ以前に自炊していた日(ここではtq日)文のこ幸福度が増える
        crt += uprange[i] + tq * P * 2LL;
        ans = max(ans,crt);
        ++tq;
    }
    printf("%lld\n",ans);
}

