20pts求调求求了
查看原帖
20pts求调求求了
592442
Crism_qwq楼主2022/10/7 14:31

错了五个点超时两个

#include<bits/stdc++.h>
using namespace std;
long long n,x,s;
double p,q;
long long t[1000100];
int main(){
	cin>>n>>x>>p>>q;
	for(int i=1;i<=n;i++){
		cin>>t[i];
	}
	double pp=p/q;
	long long s=0,z=1,ti=1,sheng;
	t[n+1]=9999999;
	while(z<=n){
		if(x*ti*pp-s<=0){
			sheng=x-1;
			s+=1;
		}else{
			if(x-(x*ti*pp-s)%1!=0){
				sheng=(x-(x*ti*pp-s))/1+1;
			}else{
				sheng=(x*ti*pp-s);
			}
			
			s+=(x-sheng);
		}
		while(sheng>=t[z]){
			sheng-=t[z];
			z++;
		}
		s+=sheng;
		ti++;
	}
	cout<<ti-1;
    return 0;
}

2022/10/7 14:31
加载中...