第7个点怎么都过不了
查了一个小时了QWQ
求大佬帮忙看看!
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,k;
ll ans;
struct hi{
ll x,y;
}a[100005];
bool cmp(hi o,hi t){
return o.x<t.x;
}
bool check(ll m){
ll pos=a[1].x;
int t=1;
for(int i=2;i<=n;i++){
if(pos+m<=a[t].y){
pos+=m;
continue;
}
int f=0;
for(int j=t+1;j<=k;j++){
if(pos+m<=a[j].y){
pos=max(a[j].x,pos+m);
t=j;
f=1;
break;
}
}
if(f==0){
return false;
}
}
return true;
}
int main(){
scanf("%lld %lld",&n,&k);
for(int i=1;i<=k;i++){
scanf("%lld %lld",&a[i].x,&a[i].y);
}
sort(a+1,a+1+k,cmp);
ll l=0,r=(a[k].y/n)+10;
while(l<r){
ll mid=(l+r+1)>>1;
if(check(mid)){
ans=mid;
l=mid;
}
else r=mid-1;
}
printf("%lld",ans);
return 0;
}