纪念下第一次优先队列题~
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<queue>
using namespace std;
struct node
{
int p,num;
bool operator < (const node& a) const
{
return p<a.p || (p==a.p&&num>a.num);
}
};
string ch;
int main()
{
int i,j,k,n,a,b,tmp;
while(scanf("%d",&n)!=-1)
{
priority_queue<node>q[4];
for(i=1;i<4;i++)
while(!q[i].empty())
q[i].pop();
int cou=1;
node x;
while(n--)
{
cin>>ch;
if(ch=="IN")
{
scanf("%d%d",&a,&x.p);
x.num=cou++;
q[a].push(x);
}
else
{
scanf("%d",&a);
if(!q[a].empty())
{
x=q[a].top();
q[a].pop();
printf("%d\n",x.num);
}
else
printf("EMPTY\n");
}
}
}
return 0;
}