求救
查看原帖
求救
480934
xqqQwQ_楼主2022/9/4 18:30

#include<bits/stdc++.h>
#define double long double
#define int long long

using namespace std;

const int MAXN=1e6+5;

int n;
int x;
int p,q;
int a[MAXN];

int gcd(int a,int b){
	if(a%b==0) return b;
	else return gcd(b,a%b);
}

signed main(){
	// double st=clock();
	// freopen("test.in","r",stdin);
	// freopen("test.out","w",stdout);
	cin>>n>>x>>p>>q;
	int tmpt=gcd(p,q);
	p=p/tmpt;
	q=q/tmpt;
	double p1=p,q1=q;
	for(int i=1;i<=n;++i) cin>>a[i];
	long long t=0;
	int indx=1;
	long long sum=0;
	double tmp=x*1.0*p1/q1*1.0;
	double kk=x*1.0;
	while(indx<=n){
		t++;
		int k=x-1;
		while(a[indx]<=k&&indx<=n){
			k-=a[indx];
			++indx;
		}
		sum=sum+k+1;
		double tm=tmp*1.0*(double)t;
		int tt=ceil((tm-(double)sum)/(kk-tmp));
		if(tm>sum){
			t+=tt;
			sum+=tt*x;
		}
	}
	cout<<t<<endl;
	// double ed=clock();
	return 0;
}

SUB #2和#5各WA了一个点

调一小时了。 跟别人给的AC代码对拍也没拍出来。

求救

2022/9/4 18:30
加载中...