80分答案错误求调
查看原帖
80分答案错误求调
554299
loool楼主2023/11/25 17:36
#include<iostream>
using namespace std;
int n,k,p,s[1000010];
#define int unsigned long long
bool f(int x){
	int sum=s[1],m=1;
	for(int i=2;i<=k;i++){
		if(sum+x<=s[i]){
			sum=s[i];
			m++;
		}
	}
	//cout<<n<<" "<<m<<endl;
	return (m>=n);
}
signed main(){
	cin>>n>>k>>p;
	s[1]=p;
	for(int i=2;i<=k;i++){ 
		s[i]=s[i-1]+((s[i-1]*2357+137)%10)+1;
		//cout<<s[i]<<" ";
	}
	int l=1,r=1e10,mid;
	while(l<r){
		mid=(l+r+1)/2;
		//cout<<l<<" "<<mid<<" "<<r<<endl;
		if(f(mid)){
			l=mid;
		}else{
			r=mid-1;
		}
	}	
	cout<<l;
	
	
	
	return 0;
}

答案错误谢谢大家

2023/11/25 17:36
加载中...