提交时间:2023-12-21 13:47:22
运行 ID: 117009
#include<bits/stdc++.h> using namespace std; int m,op; struct node{ int id,p; }a[100001]; bool cmp(node x,node y){ return x.p>y.p||(x.p==y.p&&x.id<y.id); } int main(){ while(cin>>op){ if(op==0)break; if(op==1){ int k,p; cin>>k>>p; m++; a[m]=(node){k,p}; } if(op==2){ if(m==0){ cout<<0<<endl; continue; } cout<<a[1].id<<endl; swap(a[1],a[m]); a[m]=(node){0,0}; m--; } if(op==3){ if(m==0){ cout<<0<<endl; continue; } cout<<a[m].id<<endl; a[m]=(node){0,0}; m--; } sort(a+1,a+m+1,cmp); } return 0; }