Windows Message Queue
来源:互联网 发布:网络正常 微信不能用 编辑:程序博客网 时间:2024/06/06 06:38
D - Windows Message QueueTime Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %lluDescription
Message queue is the basic fundamental of windows system. For each process, the system maintains a message queue. If something happens to this process, such as mouse click, text change, the system will add a message to the queue. Meanwhile, the process will do a loop for getting message from the queue according to the priority value if it is not empty. Note that the less priority value means the higher priority. In this problem, you are asked to simulate the message queue for putting messages to and getting message from the message queue.
Input
There's only one test case in the input. Each line is a command, "GET" or "PUT", which means getting message or putting message. If the command is "PUT", there're one string means the message name and two integer means the parameter and priority followed by. There will be at most 60000 command. Note that one message can appear twice or more and if two messages have the same priority, the one comes first will be processed first.(i.e., FIFO for the same priority.) Process to the end-of-file.
Output
For each "GET" command, output the command getting from the message queue with the name and parameter in one line. If there's no message in the queue, output "EMPTY QUEUE!". There's no output for "PUT" command.
Sample Input
GETPUT msg1 10 5PUT msg2 10 4GETGETGETSample Output
EMPTY QUEUE!msg2 10msg1 10EMPTY QUEUE!
代码:#include<stdio.h>#include<queue>using namespace std;struct node{ char s[60]; int a; int b; int c; //记录第几个进度队列}q;bool operator<(node x,node y){ if(x.b==y.b) return x.c>y.c; //优先输出先进来的,所以将序号大的排在前面 return x.b>y.b;}priority_queue<node>p;int main(){ char op[5]; while(scanf("%s",op)!=EOF){ if(op[0]=='G'){ if(p.empty()){ printf("EMPTY QUEUE!\n"); } else{ node temp=p.top(); printf("%s %d\n",temp.s,temp.a); p.pop(); } } else{ scanf("%s%d%d",q.s,&q.a,&q.b); q.c=p.size()+1; p.push(q); } }return 0;}
- windows, thread ,message queue
- hdu1509 Windows Message Queue
- zoj2724-Windows Message Queue
- HDU1509-Windows Message Queue
- Windows Message Queue
- Windows Message Queue
- zoj_2724 Windows Message Queue
- hdu1509 Windows Message Queue
- hdoj- Windows Message Queue
- Windows Message Queue
- hd1509 Windows Message Queue
- H - Windows Message Queue
- Windows Message Queue--hdu1509
- HDU1509---Windows Message Queue
- Windows Message Queue
- hdu1509 Windows Message Queue
- Windows Message Queue
- Windows Message Queue
- wampserver apache 500 Internal Server Error(常见问题的解决办法)
- 如何使用apoc 从neo4j导出数据,gephi导入数据
- Jxl导出excel开发实例
- java编写飞行棋
- Paint的setShadowLayer参数说明及使用
- Windows Message Queue
- git拉取代码中git stash和git stash pop的使用
- 构建spring+springdata +jpa+springmvc项目
- 【腾讯TMQ】从0开始做后台测试
- 背包问题基础(三种背包)
- Linux搭建开发环境(svn,jdk,tomcat,mysql,maven)
- C++类/构造函数/析构函数/成员函数
- springboot定时任务的使用
- maven工程建立父包parent报错