HDU1509题Windows Message Queue(优先队列)

来源:互联网 发布:51单片机蜂鸣器电路 编辑:程序博客网 时间:2024/05/18 08:58

题目链接~~>

 

  本题纯优先队列:注意输出时如果两个优先级相同输出先输入的。

 

代码:

#include<stdio.h>#include<string.h>#include<queue>using namespace std;struct zhang{    char str[100];    int x,y,h;    friend bool operator<(const zhang &a,const zhang &b)    {        if(a.x!=b.x)        return a.x > b.x ;        else             return a.h > b.h;    }};int main(){    char s[10];    int f=0;    priority_queue<zhang>q;    zhang current;    while(scanf("%s",s)!=EOF)    {       if(strcmp(s,"GET")==0)       {           if(q.empty())           {                 printf("EMPTY QUEUE!\n");           }           else {                  current=q.top();                 printf("%s %d\n",current.str,current.y);                   q.pop();           }        }    else {             scanf("%s%d%d",current.str,¤t.y,¤t.x);              current.h=f++;             q.push(current);          }      }  return 0;}


 

原创粉丝点击