我写了个代码,总是在CMP的地方报错,求解
#include<bits/stdc++.h>
using namespace std;
int n;
struct time{
int s;
int t;
}a[1000001];
bool pass(int t){
for(int i=1;i<=n;i++){
if(t>a[i].s-a[i].t){
return false;
}
t+=a[i].t;
}
return true;
}
bool cmp(time xx,time yy){
return xx.s<yy.s;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].t>>a[i].s;
}
sort(a+1,a+n+1,cmp);
int l=0,r=a[n].s+1,mid;
while(l>r){
mid=(l+r)/2;
if(pass(mid)){
cout<<mid;
return 0;
}
}
cout<<-1;
return 0;
}