纪念下第一次优先队列题~
#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; }
作者:u010690055 发表于2013-7-16 11:11:02 原文链接
阅读:37 评论:0 查看评论