#P15537. [nordic2019]Thieves and Prisons
[nordic2019]Thieves and Prisons
题目描述
有 个小偷和 座监狱。每个小偷要么正在逃跑,要么被关在某一座监狱中。初始时,所有小偷都在逃跑。
一个正在逃跑的小偷可能被警察抓住,然后被关进某一座监狱。一个正在逃跑的小偷也可能打开某一座监狱的大门。若一座监狱的大门被打开,则这座监狱中的所有小偷都会被释放。显然,打开一座空监狱没有意义,因此这种事情不会发生。
现在给出 个事件,每个事件形如:
C x:小偷 被抓住;O x:小偷 打开了一座监狱的大门。
你的任务是为每个事件指定对应的监狱编号,使得整个事件序列可能真实发生;如果不存在这样的指定方案,则输出 IMPOSSIBLE。
输入格式
第一行包含三个整数 ,分别表示小偷数量、监狱数量和事件数量。
小偷编号为 ,监狱编号为 。
接下来 行,每行描述一个事件,格式为以下二者之一:
C x
表示小偷 被抓住;
O x
表示小偷 打开了一座监狱的大门。
输出格式
如果存在合法方案,输出 个整数,表示每个事件对应的监狱编号。
- 对于事件
C x,输出的监狱编号表示小偷 被关进哪一座监狱; - 对于事件
O x,输出的监狱编号表示小偷 打开哪一座监狱。
如果无解,输出:
IMPOSSIBLE
样例 1
输入
3 2 5
C 1
C 2
O 3
O 2
C 1
输出
1 2 2 1 1
样例 2
输入
1 1 1
O 1
输出
IMPOSSIBLE