https://iai.sh.cn/problem/705
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct stu{
int rq,nl;
};
stu l[100005];
bool cmp(stu a,stu b){
return a.nl<b.nl;
}
stu lq[1000005];
int sum1=0,sum2=0,maxn=-1;
signed main(){
int n,m;
cin>>n;
for(int i=1;i<=n;i++){
cin>>l[i].nl>>l[i].rq;
}
cin>>m;
sort(l+1,l+n+1,cmp);
for(int i=1;i<=n;i++){
sum1+=l[i].rq;
lq[i].rq=sum1;
sum2+=l[i].nl
lq[i].nl=sum2;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
if(lq[i].rq-lq[j-1].rq>maxn and l[i].nl-l[j].nl<=m){
maxn=lq[i].rq-lq[j-1].rq;
}
}
}
cout<<maxn;
}
老师要求不能用二分