注意到了题目中的顺序,用了 set,但是只有40分:
#include<bits/stdc++.h>
using namespace std;
set<pair<long long,long long> > s;
long long ww=0,cc=0;
int main(){
while(1){
int op;
cin>>op;
if(op==-1) break;
if(op==1){
long long w,c;
cin>>w>>c;
s.insert(make_pair(c,w));
}
else if(op==3){
if(s.empty()) continue;
s.erase(s.begin());
}
else if(op==2){
if(s.empty()) continue;
s.erase(--s.end());
}
}
set<pair<long long,long long> >::iterator it=s.begin();
for(;it!=s.end();it++){
cc+=it->first;
ww+=it->second;
}
cout<<ww<<" "<<cc;
}