优先队列的运用
这不是个难题,但是如果你不会运用优先队列,那可能会有点难度。`
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
struct node{
int k;
int b;
friend bool operator < (node a1,node a2){
if(a1.b!=a2.b) return a1.b<a2.b;
else return a1.k>a2.k;
}
};
int main(){
int n;
while(~scanf("%d",&n)){
int s=0;
priority_queue<node> A[4];
for(int i=0;i<n;i++){
char c[10]={0};
int L=0,I=0;
scanf("%s",c);
node Q;
if(strcmp(c,"IN")==0){
scanf("%d %d",&L,&I);
getchar();
s++;
Q.b = I;
Q.k = s;
A[L].push(Q);
}
else{
scanf("%d",&L);
getchar();
if(A[L].size()!=0){
Q = A[L].top();
printf("%d",Q.k);
A[L].pop();
}
else printf("EMPTY");
printf("\n");
}
}
}
return 0;
}