Your task is to help the software engineer of the bank by writing a program to implement the requested serving policy.
Input Each line of the input contains one of the possible requests; only the last line contains the stop-request (code 0). You may assume that when there is a request to include a new client in the list (code 1), there is no other request in the list of the same client or with the same priority. An identifier K is always less than 10 6, and a priority P is less than 10 7. The client may arrive for being served multiple times, and each time may obtain a different priority.
Sample Input
2 1 20 14 1 30 3 2 1 10 99 3 2 2 0
Sample Output
0 20 30 10 0 STL乃神器,set的使用。#include#include #include #include #include #include using namespace std; struct node{ int v,p; bool operator<(const node &a)const//p大的优先 { return p>a.p; } }; int main() { int u; set q; node temp; while(~scanf("%d",&u)) { if(u==0) break; if(u==1) { scanf("%d%d",&temp.v,&temp.p); q.insert(temp); } else if(q.empty()) puts("0"); else if(u==2) { printf("%d\n",q.begin()->v); q.erase(q.begin()); } else { set ::iterator it=q.end(); it--; printf("%d\n",it->v); q.erase(it); } } return 0; }