#NBMTM1B. 雪国侦探

雪国侦探

题目背景

暴风雪封锁了科洛列夫茨基剧院。十三人困于其中。死亡一夜接一夜降临。每个人都在发言,每个人都在指认别人。真相藏在一句又一句真假难辨的话里。

题目描述

有 nn 个人,编号 11 到 nn。其中有 rr 个【死之执政】 RR。每个人被标记为 PP 或 NN。

规则:

  • NN 一定不是【死之执政】,且说的所有话都是真的;
  • 死掉的人一定不是【死之执政】,且死前最后一晚说的话是真的;
  • PP 说的话可能是真的也可能是假的;
  • 【死之执政】恰好有 rr 个。

发言有三种:

  • I don't know anything.
  • I think x is R.
  • I think x is not R.

其中 x 是玩家编号。

如果能从真的发言中推出矛盾,输出 The truth is under mystery.。否则输出所有在一切可能情况下都必定是【死之执政】的人。

输入格式

从文件 sleuth.in 中读入数据。

第一行四个整数 n,r,m,idn, r, m, id。

接下来 nn 行:姓名和 身份P/NP/N。

接下来 mm 轮:

  • 第一行 dd,第二行 dd 个死亡编号;(若 d=0d=0 ,则不存在第二行 )
  • 接下来若干行:编号 + 发言,直到本轮结束。

保证活着的所有人的发言有且仅有一次。

如果一个人在某一轮发言后死亡,那轮发言是遗言,一定是真的。

输出格式

输出到文件 sleuth.out 中。

有矛盾输出一行 The truth is under mystery. ;

否则先输出必然是【死之执政】的人数,再按编号从小到大输出姓名。

样例 1 输入

7 2 3 1
Odette P
Alyosha P
Valeriy N
Vesna P
Danica P
Noy P
Mitya P
0
1 I don't know anything.
2 I think 5 is R.
3 I think 7 is R.
4 I think 7 is R.
5 I don't know anything.
6 I think 4 is R.
7 I think 1 is not R.
2
1 4
2 I think 5 is R.
3 I think 2 is R.
5 I think 2 is R.
6 I think 4 is not R.
7 I think 3 is not R.
1
6
2 I think 5 is R.
3 I think 5 is not R.
5 I don't know anything.
7 I think 2 is not R.

样例 1 输出

2
Alyosha
Mitya

样例 1 解释

n=7n=7,r=2r=2,即 7 人中恰有 2 个【死之执政】RR。

已知 Valeriy(编号 3)是 NN,必不是 RR,且发言全真;其余 6 人为 PP,发言可真可假,这里不过多赘述,考生可以自行判断这些发言的真假。

第一轮:无人死亡

本轮无人死亡,所以没有遗言约束。

第一轮发言:

  • 3:I think 7 is R.

注意 3 是 NN,发言必真。3 在第一轮说“7 是 RR”,因此:

7 是 RR。


第二轮:死亡 1、4

死人一定不是 RR,所以:

  • 1 不是 RR;
  • 4 不是 RR。

死人最后一晚的发言必真,即第一轮发言必真:

  • 1 说I don't know anything.——真;
  • 4 说I think 7 is R.——真,所以再次印证 7 是 RR。

第二轮发言:

  • 3:I think 2 is R.

注意 3 是 NN,发言必真。3 在第二轮说“2 是 RR”,因此:

2 是 RR。

于是两个 RR 已经确定:2 和 7。

但为了确认是否存在矛盾,我们需要继续查看第三轮。


第三轮:死亡 6

死人一定不是 RR,所以:

  • 6 不是 RR;

死人最后一晚的发言必真,即第二轮发言必真:

  • 6 说I think 4 is not R.——真,与已知一致。

第三轮发言:

  • 3:I think 5 is not R.

注意 3 是 NN,发言必真。3 在第三轮说“5 不是 RR”,因此:

5 不是 RR。

这不与已知矛盾。


结论

在所有合法可能中,必定是【死之执政】的人为:

  • 2 号 Alyosha
  • 7 号 Mitya

共 2 人,按编号从小到大输出。

样例 2

见选手目录下的 sleuth/sleuth2.in 与 sleuth/sleuth2.ans。

样例 3

见选手目录下的 sleuth/sleuth3.in 与 sleuth/sleuth3.ans。

样例 4

见选手目录下的 sleuth/sleuth4.in 与 sleuth/sleuth4.ans。

数据范围

对于所有测试数据,保证:1≤n≤5001 \leq n \leq 500,1≤r≤501 \leq r \leq 50,1≤m≤201 \leq m \leq 20。

测试点 nn rr mm 特殊性质
1∼41 \sim 4 ≤10≤ 10 ≤3≤ 3 无
5∼65 \sim 6 ≤50≤ 50 ≤10≤ 10 ≤5≤ 5 AA
7∼87 \sim 8 无
9∼129 \sim 12 ≤100≤ 100 ≤20≤ 20 ≤10≤ 10
13∼1813 \sim 18 ≤500≤ 500 ≤50≤ 50 ≤20≤ 20
19∼2019 \sim 20 =13= 13 =1= 1 =6= 6 BB

特殊性质 AA:所有 NN 总是在最后发言。

特殊性质 BB:无法通过普通程序完成。

对于该特殊性质,满足id=10id=10,所有对话均为I don't know anything.。

但请注意,该特殊性质下的数据的答案并非是

0

而是完全符合原著剧情的结果。

你的输出应为

1
(根据原著内容判断,注意应当是一个首字母大写的字符串)

原著剧情见选手目录下的 sleuth/plot.mp4 。