代码90分,二分答案不知道哪儿错了
查看原帖
代码90分,二分答案不知道哪儿错了
1471481
StarWuRuixuan楼主2024/11/8 20:18
#include<bits/stdc++.h>
using namespace std;
long long n,c,cow[10000005],mx=0;
bool check(int x)
{
	int s=1,y=cow[1];
	for(long long i=2 ; i<=n ; i++)
	{
		if(cow[i]-y>=x)
		{
			y=cow[i]; 
			s++;
		}
	}
	return s>=c;
}
int main()
{
	cin>>c>>n>>cow[1];
	for(int i=2 ; i<=n ; i++)
	{
		cow[i]=cow[i-1]+(cow[i-1]*2357+137)%10+1;
		mx=max(cow[i],mx);
	}
	sort(cow+1,cow+1+n);
	long long ll=1,rr=mx+1;
	while(ll+1<rr)
	{
		int mid=(ll+rr)/2;
		if(check(mid))
		{
			ll=mid;
		}
		else
		{
			rr=mid;
		}
	}
	cout<<ll;
	return 0;
}


2024/11/8 20:18
加载中...