求助测试点 #28
查看原帖
求助测试点 #28
534654
zhenjianuo2025楼主2022/9/4 21:50

不知道为什么 WA 了

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
#define int long long
int n, x, p, q, t[100010];
signed main() {
	cin >> n >> x >> p >> q;
	for (int i = 1; i <= n; i++) cin >> t[i];
	long double r = p * 1.0 / q;
	int sle = 0, j = 0, i = 1, w = 0;
	while (j < n) {
		w = 0;
		while (j < n && (w + t[j + 1] < x) && (sle + x - w - t[j + 1]) >= r * x * i) {
			w += t[j + 1];
			j++;
		}
		// 下一个可行的 
		i++;
		sle += x - w;
		int k = ceil((sle - r * x * i - t[j + 1] + x) * 1.0 / (x * (r - 1)));
		k = max(k, 0ll);
		i += k;
		sle += x * k;
	}
	cout << i - 1;
	return 0;
}
2022/9/4 21:50
加载中...