HDU 1872稳定排序优先队列

来源:互联网 发布:js 语音波形图 编辑:程序博客网 时间:2024/04/29 19:07
/* 优先队列, 两个优先性处理。。 */#include<iostream>#include<cstdio>#include<algorithm>#include<string>#include<queue>#include<vector>#define manx 350using namespace std;struct temp{    string str;    int num;     int point;   }node[manx];int k;struct comp{    bool operator()(temp &t1,temp &t2){        return t1.num<t2.num || t1.num==t2.num && t1.point>t2.point;    }};priority_queue<temp, vector<temp>, comp >que; void PN(){    for(int  i=1;i<=k;i++)        cout<<node[i].str<<" "<<node[i].num<<endl;}int main(){    int n;    while(cin>>n){        while(!que.empty()) que.pop();        temp te;        for(int i=1;i<=n;i++){            cin>>te.str>>te.num;            te.point=i;            que.push(te);        }        int flag=0,mark=0;        k=0;        for(int i=1;i<=n;i++){            cin>>te.str>>te.num;            temp ant=que.top();            node[++k]=ant;            if(ant.str!=te.str && ant.num==te.num){                flag=1;                que.pop();                continue;            }            if(ant.str!=te.str && ant.num!=te.num){                que.pop();                mark=1;                continue;            }            if(ant.str==te.str && ant.num==te.num){                que.pop();                continue;            }            }        if(mark){printf("Error\n"); PN(); continue; }        if(flag){printf("Not Stable\n"); PN(); continue; }        printf("Right\n");    }}/*3aa 10bb 10cc 20cc 20bb 10aa 10*/

原创粉丝点击