30分求调!!!
查看原帖
30分求调!!!
1008094
MASHED_TOMATO楼主2024/11/3 09:56
#include<iostream>
using namespace std;
long long p[10000005];
long long n,k,p1,ans;
bool check(long long x)
{
	long long now=1,tot=1;
	for(int i=2;i<=k;i++)
	{
		if(p[i] < p[now] + x)
		{
			continue;
		}
		tot++;
		now=i;
	}
	if(tot > n)
	{
		return true;
	}
	else
	{
		return false;
	}
}
int main()
{
	cin >> n >> k >> p1;
	p[1]=p1;
	for(int i=2;i<=k;i++)
	{
		p[i] = p[i-1] + ((p[i-1]*2357+137)%10)+1;
	}
	long long l,r,mid;
	l=1;
	r=p[k]-p[1];
	while(l<=r)
	{
		mid=(l+r)/2;
		if(check(mid))
		{
			l=mid+1;
			ans=mid;
		}
		else
		{
			r=mid-1;
	}
	cout << ans;
	return 0;
}
2024/11/3 09:56
加载中...