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;
}