md 这辈子就真的只能 RE 自动机了。
非正解,但是一分拿不到,只过了 3 个点。
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int n, x, p, q, ans, now = 1, ts, t[N], sumt[N];
int main(){
scanf("%d%d%d%d", &n, &x, &p, &q);
for(int i=1;i<=n;i++) scanf("%d", &sumt[i]), sumt[i] += sumt[i - 1];
while(now < n + 1){
++ans;
int used = 0; double slp = 1.0 / q * ans * x * p;
while(1){
int tt = sumt[now] - sumt[now - 1];
if(used + tt < x && 1.0 * (ts + x - (used + tt)) >= slp){
++now, used += tt;
}else break;
}
ts += x - used;
}
printf("%d\n", ans);
return 0;
}