每个捆绑点都有WA点...
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define rep(i,n,x) for(int i=1;i<=n;i+=x)
#define db double
#define pii pair<int,int>
#define se second
#define fi first
#define endl '\n'
#define YF puts(" ")
const int maxn=1e5+5;
int n,x,p,q;
int a[maxn];
signed main(){
cin>>n>>x>>p>>q;
p/=__gcd(p,q);
q/=__gcd(p,q);
rep(i,n,1)cin>>a[i];
int use=0;
int use_now=0;
int ans=0;
int solve=1;
for(int t=1;;t++){
while((x*t*q-use*q-a[solve]*q>=x*p*t)&&(use_now+a[solve]<x)&&solve<=n){
use+=a[solve];
use_now+=a[solve];
solve++;
}
if(solve==n+1){
ans=t;
break;
}
use_now=0;
}
cout<<ans;
YF;
return 0;
}