题目链接http://118.190.20.162/view.page?gpid=T164
这个代码只能拿85分
#include<iostream>
#include<map>
using namespace std;
int main(){
long long n,m,k,ti,ci,t;
map<long long,long long,greater<>>field;
cin>>n>>m>>k;
while(n--){
cin>>ti>>ci;
field[ti]+=ci;
}
for(auto it=field.begin();it!=field.end();it++){
if(it== prev(field.end())){
while(m>=it->second){
t--;
m-=it->second;
}
break;
}
auto next=it;
next++;
long long cost=it->second*(it->first-next->first);
if(m<cost||t==k)
break;
t=next->first;
m-=cost;
next->second+=it->second;
}
t=t>=k?t:k;
cout<<t;
}