C1056 - 看病要排队

题目描述

看病要排队这个是大家都知道的常识

一家医院有3个医生坐诊同时看病,看病的人需要排队看病,而看病的人病情有轻有重,病情重的人可以优先看病

医院对每种病情规定了10种不同的优先级,级别为10的优先权最高,级别为1的优先权最低

医生在看病时,则会在他的队伍里面选择一个优先权最高的人进行诊治,如果遇到两个优先权一样的病人的话,则选择最早来排队的病人

每个医生有他自己的独立的看病队伍

现在就请你帮助医院模拟这个看病过程

输入格式

第1行,一个正整数N,代表接下来有N个事件

接下来是N个事件,一共有两种事件:

  1. IN A B,表示有一个拥有优先级B的病人要求医生A诊治,(1<=A<=3, 1<=B<=10)
  2. OUT A,表示医生A从他的队伍中选择一个人进行诊治,诊治完毕后,病人出院,(1<=A<=3)

输出格式

对于每个OUT A事件,请在一行里面输出被诊治人的编号ID。如果该事件时无病人需要诊治(该医生的看病队伍为空),则输出"EMPTY"

诊治人的编号ID的定义为:在一组测试中(一组输入数据),IN A B事件发生第K次时,进来的病人ID即为K,从1开始编号

输入输出样例

输入样例 输出样例
7
IN 1 1
IN 1 2
OUT 1
OUT 2
IN 2 1
OUT 2
OUT 1
2
EMPTY
3
1
2
IN 1 1
OUT 1
1

输入输出样例解释

数据范围与提示

100%的数据:$1 \le N \le 2000$,$1 \le A \le 3$,$1 \le B \le 10$

测试点数目

共10个测试点,每个测试点10分

时间与内存限制

每个测试点时间:1000ms(1.0s),内存:256MiB

输入输出模式

本OJ支持两种输入输出模式

1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:C1056.in,输出文件名为:C1056.out