30分求调
查看原帖
30分求调
1425184
zzy00001楼主2024/11/18 18:57
#include<bits/stdc++.h>
using namespace std;
int l,n,m;
int a[50005],b[50005];
int ans;
bool judge(int x)
{
    int flag=0;
    int i=0;
    int now=0;
    while(i<n+1)
	{
        i++;
        if(a[i]-a[now]<x)flag++;
        else now=i;
    }
    if(flag>m)return false;
    else return true;
}
int main()
{
    cin>>l>>n>>m;
    for(int i=1;i<=n;i++)
    {
    	cin>>a[i];
    	b[i]=a[i]-a[i-1];
	}
	int L=1,R=l,mid;
	while(L<=R)
	{
		mid=(L+R)/2;
		if(judge(mid))
		{
            ans=mid;
            L=mid+1;
        }
        else R=mid-1;
	}
	cout<<ans;
}
2024/11/18 18:57
加载中...