hdu1873优先队列

hdu1873

重载运算符的概念很不熟悉,用的很不熟练。通过这个题又去看了看。

导致wa了一发

代码

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<vector>
#include<queue>
using namespace std;
int n,a,b;
string ss;
struct node{
    int x,y;
    bool friend operator <(node p,node q){
        if(p.x==q.x) return q.y<p.y;//判断 p和q的小于关系的时候  p的排队号码大 p就是小
        else return q.x>p.x;// p的优先级小 就是小
    }
}s;
int main(){
    while(cin>>n){
        priority_queue<node>que[5];
        int t=1;
        for(int i=0;i<n;i++){
            cin>>ss;
            if(ss[0]=='I'){
                cin>>a>>b;
                s.x=b;
                s.y=t++;
                que[a].push(s);
            }
            else{
                cin>>b;
                if(!que[b].empty()) {
                    cout<<que[b].top().y<<endl;
                    que[b].pop();
                }
                else cout<<"EMPTY"<<endl;
            }
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/holly_Z_P_F/article/details/81224152