hdoj1434

#include<iostream>
#include<queue>
using namespace std;


#define maxn 10005


struct node  
{  
    string name,s;  
    int rp;  
    friend bool operator<(node a,node b)  
    {  
        if(a.rp!=b.rp) return a.rp>b.rp;//第一关键字,如果人品不相等,这样写就是说人品差的会排在队首(堆顶)  
        return a.name<b.name;//第二关键字,如果人品相等,那么姓名字典序大的队首(堆顶)  
    }  
};
int main(){
int n,m;
int xi,xj,rp,num;
string name,s;
while(cin>>n>>m){
priority_queue<node>que[maxn];  
        node t;  
        for(int i=1;i<=n;i++)  
        {  
            int cnt,rp,id;  
            string name;  
            cin>>cnt;  
            while(cnt--)  
            {  
                cin>>name>>rp;  
                t.name=name;  
                t.rp=rp;  
                que[i].push(t);  
            }  
        } 
for(int i = 0;i<m;++i){
cin>>s;
if(s == "GETOUT"){
cin>>xj;
t = que[xj].top();
que[xj].pop();
cout<<t.name<<endl; 
}
else if(s == "JOIN"){
cin>>xi>>xj;
while(que[xj].size()){
t = que[xj].top();
que[xj].pop();
que[xi].push(t);
}
}
else{
cin>>num>>name>>rp;
t.name = name; t.rp = rp;
que[num].push(t);
}
}
}
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值