#include<bits/stdc++.h>
using namespace std;
int n,x,a[100005],slp,task;
double p,q,r;
long long day;
int main() {
cin>>n>>x>>p>>q;
r=p/q;
for(int i=1;i<=n;i++) cin>>a[i];
while(task<=n) {
day++;
int t=0,least=ceil(r*x*day)-slp,j=0;
while(x-t>least&&t<x) {
t+=a[task+1];
if(x-t>=least&&t<x&&task<n) task++,j++;
else {
t-=a[task+1];
break;
}
}
slp+=x-t;
if(task==n) break;
}
cout<<day;
}
思路大概是当每一轮这一天除去工作时间后的时间足够睡觉(睡觉最少时间即r*x*i-前几天睡觉时间)的时候,进行工作(task++),更新工作时长