#include using namespace std; #define INF 1000000000 #define REP(i,n) for(int (i)=0;(i)<(int)(n);(i)++) typedef long long LL; int N,A,B,W; int D[300011]; int sum[300011]; LL que[300011]; LL day[300011]; void calc_sum(){ sum[0]=0; REP(i,300010){ sum[i+1]=sum[i]-A+B*(i+1); } } LL change(LL q1,LL d1,LL q2,LL d2){ q1+=sum[(d2-d1)]; if(B<=A)return 1e12; if(B==0)return 1e12; LL btk=q2-q1; return btk/(B*(d2-d1))+1+d2; } int main(){ cin>>N>>A>>B>>W; calc_sum(); REP(i,N){ cin>>D[i+1]; } /* REP(i,N+1){ printf("sum[%d]=%d",i,sum[i]); }*/ que[0]=0; day[0]=0; int l=0,r=1; REP(i,N+1){ if(i==0)continue; int n_day=i; //先頭の更新 while(1){ if(r-l==1)break;//queに要素が1つ if(change(que[l],day[l],que[l+1],day[l+1])