内存换时间啦 代码贴下来 不清楚或者有很好的意见欢迎讨论呐
#include <iostream>
using namespace std;
const int N=500010;
int n,m,k,ans=0,b[N]={};
int main() {
cin>>n>>m>>k;
int a[n+1]={};
int temp,max=0;
for(int i=1;i<=n;i++){
cin>>a[i]>>temp;
b[a[i]]+=temp;
if(a[i]>max) max=a[i];
}
while(m>b[max]&&k<max){
m-=b[max];
max--;
b[max]+=b[max+1];
}
cout<<max;
return 0;
}