WA了一个点。
查看原帖
WA了一个点。
704634
poor_OIer楼主2022/10/20 21:58
#include<bits/stdc++.h>
using namespace std;
int L,i,j,k,m,n,l,r,mid,a[50005],b[50005];
int work(int mi)
{
	k=0;
	for(j=0;j<=n;j++)
		b[j]=a[j];
	for(j=1;j<=n;j++)
	{
		if(b[j]-b[j-1]<mi)
		{
			b[j]=b[j-1];
	   		k++;
  		}
  		if(k>m)
			return k;
	}
	return k;
}
int main()
{
	cin>>L>>n>>m;
	for(i=1;i<=n;i++)
		cin>>a[i];
	n++;
	r=a[n]=L;
	while(l+1<r)
	{
		mid=(l+r)/2;
		if(work(mid)>m)
			r=mid;
		else
			l=mid;
	} 
	cout<<l;
	return 0;
}
2022/10/20 21:58
加载中...