30分求助
查看原帖
30分求助
794188
furina_1013楼主2024/5/4 08:55

大佬救救,搞不清楚哪里错了

#include <bits/stdc++.h>
using namespace std;
int l,n,m;
int a[50005];
bool check(int x)
{
	int pos=0;
	int sum=0;
	for(int i=0;i<n+1;i++)
	{
		if(a[i]-a[pos]<x)
		{
			sum++;
		}
		else
		{
			pos=i;
		}
	}
	return sum<=m; 
}
int main()
{
	cin>>l>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	long long  l=1,r=1000000000,mid,ans;
	while(l<r)
	{
		mid=(l+r)/2;
		if(check(mid))
		{
			ans=mid;
			l=mid+1;
		}
		else
		{
			r=mid-1;
		}
		
	}
	cout<<ans;
	return 0;
}
2024/5/4 08:55
加载中...