标签:优先队列
#include<stdio.h> #include<string.h> #include<queue> #include<iostream> using namespace std; struct node { char name[25]; int rp; bool operator < (const node& x) const { return rp>x.rp||(rp==x.rp&&strcmp(name,x.name)<0); } }a,b; int main() { int n,m,i,j,k,l,cont; char str[25],rp; while(~scanf("%d%d",&n,&m)) { priority_queue<node>q[10010]; for(i=1;i<=n;i++) { scanf("%d",&cont); while(cont--) { scanf("%s%d",a.name,&a.rp); //strcpy(a.name,str); //a.rp=rp; q[i].push(a); } } for(i=1;i<=m;i++) { scanf("%s",str); if(str[0]==‘G‘&&str[4]==‘N‘) { scanf("%d%s%d",&k,a.name,&a.rp); q[k].push(a); } else if(str[0]==‘J‘) { scanf("%d%d",&k,&l); while(!q[l].empty()) { b=q[l].top(); q[l].pop(); q[k].push(b); } } else { scanf("%d",&k); b=q[k].top(); q[k].pop(); printf("%s\n",b.name); } } } return 0; }
标签:优先队列
原文地址:http://blog.csdn.net/zxf654073270/article/details/42973461