TLE求助
查看原帖
TLE求助
263846
Liangjm楼主2021/3/23 18:48
#include <bits/stdc++.h>
using namespace std;

const int N=50005;
int a[N];
int l,n,m;

#define LL long long
#define rep0(i,n) for(register int i=0;i<n;i++)
#define rep1(i,n) for(register int i=1;i<=n+1;i++)
#define REP(i,j,n) for(register int i=j;i<n;i++)
#define rep11(i,n) for(register int i=1;i<=n+1;i++)

//int binary_search(int array[], int n, int value)
//{
//	int left = 0;
//	int right = n - 1;
//
//	while (left <= right)
//	{
//		int mid = (left + right) >> 1;
//
//		if (array[mid] < value)
//			left = mid + 1;
//		else if (array[mid] > value)
//			right = mid + 1;
//		else
//			return mid;
//	}
//	return -1;
//}

bool check(int x){
	int sum=0,p=0;
	rep1(i,n){
		if(a[i]-p<x)
			sum++;
		else
			p=a[i];
		if(sum>m)
			return 0;
	}
	return 1;
}

int main()
{
	cin>>l>>m>>n;
	rep11(i,n){
		cin>>a[i];
		a[0]=0;
		a[n+1]=l;
	}
	int L=0,r=l,ans;
	while(L<=r){
		int mid=L+r>>1;
		if(check(mid)){
			ans=mid;
			l=mid+1;
		}
		else
			r=mid-1;
	}
	cout<<ans<<endl;
	
 	return 0;
}


2021/3/23 18:48
加载中...