n,p,q = map(int, input().split())
cn = []
for i in range(n):
    cn.append(int(input()))
difs = [p*(q-i) - cn[i] for i in range(n)] ##0번째 자취에서 1번 i번째날 자취할 때의 증가분
difs = sorted(difs, reverse = True) ##제일 증가분이 큰 순서대로 sort
ans = [sum(cn)] ##(ans[i] = i번 자취시 행복도의 최대값)  으로 만들것임
for i in range(n):
    ans.append(ans[-1] + 2*i*p + difs[i])
##i=0에서는 자취를 한번만 한 것으로 자취파워가 올라간 것을 반영한 2ip는 0이 된다.
##(자취파워 올라간게 반영되지 않으므로)
print(max(ans))  ##0~n번 자취할때 의 최대값들중 최대값을 출력.
