zoj 2724 Windows Message Queue 优先队列

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


posted @ 2014-02-08 23:47  hr_whisper  阅读(157)  评论(0编辑  收藏  举报