提示: 欢迎访问OurACM平台。
Problem 1730 Book Shelf

Accept: 65    Submit: 246
Time Limit: 1000 mSec    Memory Limit : 32768 KB

Problem Description

AekdyCoin是一个非常喜欢藏书的人, 他不断的去买书,并把他们放在书架上,AekdyCoin特别准备了一个特别的书架,这里放了他新买的书,当他决定要阅读某本书的时候,他就把某本书从书架中拿出,同时书架上就出现了空位.可是有时由于他的书架的宽度是有限的,新书可能把书架上的书从另一端挤出来.由于AekdyCoin是严重的右撇子,所以他经常把书从左边塞入,同时某些书如果要掉出来,那自然是从右端掉下来,显然当AekdyCoin想读书架上的任何一本书,他都可以把它拿下来.
现在你的任务很简单,就是模拟放,拿书的过程,并告诉AekdyCoin书架上有基本书,并把他们按照从左到右输出. 书都有唯一的编号I(0 < I<=100)下面有三种操作:
* Add: 从书架的左边塞进去一本书,并向右推.某本书被推以后向右移动的条件必须是其右边有空位,如果某本书不完全在书架内,那么这本书就掉了下去.没有任何一本书的宽度会超过书架的宽度,也不会放入已经在书架上的书.
* Remove: 从书架上拿走一本书,如果这本书不存在,那么此操作被无视.
* End: 操作结束.

数据输入

Input

输入数据有多组,末尾以-1结束. 每组数据的第一行是一个整数s,(5 <= s <= 100)表示书架的宽度 , 接下来是添加或删除的操作.一个添加操作的格式如下:
A ID w
其中ID是书的编号,w是书的宽度(0 < w <= s). 而一个删除操作的格式如下:
ID为书的编号,表示想把编号为ID的书拿走.
最后如果遇到'E',表示操作结束.

Output

对于每组数据, 输出一行(具体格式见样例),然后一个数字表示书架上书的本数,接下来一行按照从左到右的顺序输出书的编号(编号之间有一个空格,最后一个编号后不需要空格),如果书架上书的本数为零,请不要输出该行.输出结果的Case之间请用一个空行间隔.

Sample Input

5 A 1 1 A 2 1 A 3 1 R 2 A 4 1 A 5 1 R 5 R 4 A 6 1 A 7 4 E 5 E 5 A 1 1 A 2 1 A 3 1 R 2 A 4 1 A 5 1 R 5 R 4 A 6 1 A 7 4 E -1

Sample Output

Case #1: 2 7 6 Case #2: 0 Case #3: 2 7 6

Hint

由于AekdyCoin喜欢对书进行重编号,所以从书架上拿下某编号为i的书以后再放一本编号为i的上去,那么它们的宽度可能不同.

Source

FZU 2009 Summer Training Qualification -- Hero Revival 2

Submit  Back  Status  Discuss