求助
查看原帖
求助
759274
Stevehim楼主2022/9/4 19:07

感觉自己思路出现了问题。。。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <string>
using namespace std;
int n;
double x, p, q;
int sum = 1;

int main() {
	cin >> n >> x >> p >> q;
//	cout << n << " " << x << " " << p << " " << q << endl;
	//先做一下处理
	int x1 = p, y = q;
	int yue = __gcd(x1, y);
	p /= yue;
	q /= yue;
//	cout << p << " " << q << endl;
	int a[n];
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	int temp = x;
	int task = 0;
	double day = 1;
	int sleep = 0;
	while (task != n) { //day circle
//		cout << "day = " << day << endl;
//		cout << "------" << endl;
//		cout << x << endl;
//		cout << p / q << endl;
//		cout << x * (p / q) << endl;
//		cout << day *x * (p / q ) << endl;
//		cout << "------" << endl;
//		cout << "task=" << task << endl;
		if (temp - a[task] + sleep >= day * x * (p / q)) {
//			cout << "day = " << day << " 时可以工作" << endl;
			temp -= a[task];
			task++;
		} else {
			sleep += temp;
			day++;
			sum++;
			temp = x;
		}
	}
	cout << sum;
	return 0;
}

2022/9/4 19:07
加载中...