http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1724
题目大意:
给出两种操作,GET要求取出当前队首的元素,而PUT会输入名称、值、还有优先值。
思路:
优先队列即可。
水。。
#include<cstdio> #include<cstring> #include<queue> using namespace std; struct data { char name[500]; int val,id; bool operator <(const data&x)const { return id > x.id; } }; int main() { char cmd[5]; priority_queue<data> q; while(~scanf("%s",cmd)) { if(cmd[0]==‘G‘) { if(!q.empty()) { data temp=q.top(); q.pop(); printf("%s %d\n",temp.name,temp.val); } else puts("EMPTY QUEUE!"); } else { data temp; scanf("%s%d%d",temp.name,&temp.val,&temp.id); q.push(temp); } } return 0; }