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*/