WA了subtask5第一个点,蒟蒻求助
查看原帖
WA了subtask5第一个点,蒟蒻求助
422328
yywlp楼主2022/9/9 17:59
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int M=5e5+5;
int n,m,p,q;
int a[M];

signed main() {
	//freopen("task5.in","r",stdin);
	scanf("%lld%lld%lld%lld",&n,&m,&p,&q);
	for(int i=1; i<=n; i++)scanf("%lld",&a[i]);
	int day=0;
	int time=0;
	int i=1;
	double every=m-p*1.0/q*m;
	for(;;) {
		day++;
		int s=m;
		bool pd=false;
		//	cout<<day*x*m<<' ';
		while(time+s-a[i]>=ceil(day*p*1.0/q*m)) {
			s-=a[i];
			if(s<=0) {
				s+=a[i];
				pd=true;
				break;
			}
			i++;
			pd=true;
			if(i>n)break;
		}
		int rest=m-a[i];
		int xj=(m*p*1.0/q*day-time-m+a[i])/every;
		if(xj>=1) {
			time+=s+(xj-1)*m;
			day+=xj-1;
		} else time+=s;
		if(i>n)break;
		//	cout<<time<<'\n';
	}
	printf("%lld",day);
	return 0;
}
2022/9/9 17:59
加载中...