0分,只对了#1
查看原帖
0分,只对了#1
700478
ZHOUJIECHEN楼主2024/5/22 21:31
using namespace std;
int l,n,k;
bool a[10000000];
int Blue(int x)
{
	int f=0,ans=0;
	for(int i=1;i<=l;i++)
	{
		if(a[i]==1)
		{
			if(i-f<=x)
			{
				f=i;
			}
			else
			{
				ans++;
				f=f+x;
				i--;
			}
		}
	}
	if(ans<=k)
	{
		return 0;
	}
	else
	{
		return 1;
	}
}
int main()
{
	cin>>l>>n>>k;
	for(int i=1;i<=n;i++)
	{
		int t;
		cin>>t;
		a[t]=1;
	}
	int L=0,R=l,mid;
	while(L+1!=R)
	{
		mid=(L+R)/2;
		if(Blue(mid))
		{
			L=mid;
		}
		else R=mid;
	}
	cout<<R;
}```
2024/5/22 21:31
加载中...