use C++ STL link
服 务 器
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Problem Description
学校中心机房里有一台服务器,这个服务器专门用来运行各部门提出的计算任务。整个系统的运行过程是这样的:
1. 服务器在每单位时间内只能处理一个计算任务。
2. 各部门提出的所有计算任务都可以被服务器在一个单位时间内处理完毕。
3. 由于不同部门可能同时提出任务,所以在服务器端用一个任务队列来缓冲这些任务。
4. 每个任务带有三个属性:任务优先级别、提出任务的时间和提出任务的部门。
5. 服务器每次从任务队列中挑优先级最高的(任务级别数字越小级别越高)的任务来处理。如果有两个或两个以上的任务都有当前的最高级别,则处理提出任务时间早的任务处理;如果有两个或两个以上的任务都有当前的最高级别和最早的提出时间,则处理部门编号小的那个任务(同一部门不会在同一时刻提出两个或两个以上的任务)。
Input
输入包含多行,每行为一个任务请求。具体格式如下:
P T B C或P T B D T1,其中P表示任务的级别(≥1),T为递交任务的时间(≥0),B为提出任务的部门编号(≥1),C表示这是一个普通的计算任务,而D表示该部门要删除本部门在时间T1时递交的那个任务(当然是该任务还未被处理过。另外,删除任务是不进队列的,提出后被立刻执行,且不占服务器运行时间)。
注意:输入的任务序列是按递交时间排序的。
当P=0表示输入结束。
Output
按服务器处理的先后次序输出各个计算任务在输入时的序号(第一个输入任务序号为1,第二个输入任务序号为2,...)。
Sample Input
2 0 1 C
1 0 2 C
2 1 1 C
1 1 2 D 0
1 2 1 D 1
0
Sample Output
2
1