重载运算符的概念很不熟悉,用的很不熟练。通过这个题又去看了看。
导致wa了一发
代码
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<vector>
#include<queue>
using namespace std;
int n,a,b;
string ss;
struct node{
int x,y;
bool friend operator <(node p,node q){
if(p.x==q.x) return q.y<p.y;//判断 p和q的小于关系的时候 p的排队号码大 p就是小
else return q.x>p.x;// p的优先级小 就是小
}
}s;
int main(){
while(cin>>n){
priority_queue<node>que[5];
int t=1;
for(int i=0;i<n;i++){
cin>>ss;
if(ss[0]=='I'){
cin>>a>>b;
s.x=b;
s.y=t++;
que[a].push(s);
}
else{
cin>>b;
if(!que[b].empty()) {
cout<<que[b].top().y<<endl;
que[b].pop();
}
else cout<<"EMPTY"<<endl;
}
}
}
return 0;
}