为什么错了?
查看原帖
为什么错了?
346308
Soshine_溯闪楼主2020/8/3 15:51
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
#include <cstdio>
#include <queue>
#include <map>
#include <iomanip>
using namespace std;
int l,n,m,a[50005];
int check(int x){
	int ans=0,t=0;
	for(int i=1;i<=n;i++){
		while(a[i]-t<x&&i<=n) ans++,i++;
		t=a[i];
	}
	return ans;
}
int main(){
	cin>>l>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i];
	a[++n]=l;
	int l=1,r=l;
	while(l<=r){
		int mid=(l+r)>>1;
		int q=check(mid);
		if(q>m) r=mid-1;
		else l=mid+1;
	}
	cout<<r;
	return 0;
}
2020/8/3 15:51
加载中...