#P16488. PM2253真假答案键

PM2253真假答案键

真假答案键

题目背景

计算机课的史密斯教授整个学期只用判断题出考卷——理由嘛,他实在太懒得手工批改了。每次考试一收卷,他就把每位同学的作答录进电脑,分数自动算出来,省事得很。

可这学期末偏偏赶上电脑崩溃,明天就要交成绩单,修电脑根本来不及。教授只能翻出旧试卷手工重判。麻烦的是,所有试卷的标准答案都存在电脑里,现在通通关在硬盘里取不出来。好在他手上还留着所有学生的答卷,而且还能凭印象回忆出某些学生那次考试答对了几题。此外他确信一件事:每道题都至少有一位同学答对了。

仅凭这些线索,教授已尽力推断,但仍有几份卷子的标准答案怎么也算不出。他请你帮忙:在他记得的那些答卷和分数约束下,找出一份字典序最小且自洽的标准答案;若无论如何都自相矛盾,则说明他记错了,应给出报告。

题目描述

给定 nn 份已被教授"记得分数"的学生试卷。每份试卷用一个字符串描述,格式为:先是一个不带多余前导零的非负整数 cic_i,表示该生答对的题数;随后一个空格,再跟上一串由 TF 构成的字符序列,表示该生从第 11 题到第 LL 题的作答(T 表示判正、F 表示判负)。

所有试卷字符串末尾的字母数相同,记为 LL

请你求出长度为 LL、由 T/F 构成的"答案键" KK,使得:

  1. 对每份试卷 ii,该生答对的题数恰好为 cic_i,即字符匹配的位置恰好 cic_i 个;
  2. 每一题至少有一位同学的作答与 KK 相同(即每题都被至少一人"答对");
  3. 在所有满足上述条件的 KK 中,字典序最小。

字典序以 ASCII 顺序比较字符,注意 'F' < 'T'

若不存在满足条件的 KK,输出字符串 inconsistent

输入格式

第一行一个正整数 nn,表示试卷份数。

接下来 nn 行,每行一个试卷字符串,格式为整数 cic_i、空格、长度 LLT/F 串。

输出格式

输出一行。若存在合法答案键,输出字典序最小的那个(仅含 TF);否则输出 inconsistent

样例

样例输入 1

3
2 TTF
1 FTF
2 FTT

样例输出 1

TTT

样例解释 1

22 题所有同学都答 T。由于每题至少有一人答对,第 22 题的标准答案必为 T。再由第 22 位同学(FTF,对 11 题)可知第 1133 题都应为 T,得到答案键 TTT,与另两位同学的 22 题也对得上。

样例输入 2

1
7 TTFFTFT

样例输出 2

TTFFTFT

样例解释 2

只有一位同学且满分,他的作答就是答案键本身。

样例输入 3

2
9 TTTFFFFTTFFTTFT
7 FFFFFFFFFFFFFFF

样例输出 3

inconsistent

样例解释 3

第 2 位同学的作答全部为 F,且他答对了 77 题,因此答案键中恰好有 77F

第 1 位同学也恰好在 77 个位置回答了 F。在这些位置,两位同学都回答 F;由于每道题至少有一位同学答对,这 77 个位置的正确答案只能全部为 F。于是其余 88 个位置都必须为 T,答案键只能等于第 1 位同学的作答。这样第 1 位同学应答对全部 1515 题,与给定的 99 分矛盾,因此无解。

数据范围与约定

对于所有测试数据:

  • 1n501 \le n \le 50nn 即试卷份数;
  • 33 \le 每份试卷字符串长度 18\le 18
  • 每份试卷格式为整数 cic_i(不带多余前导零)+ 一个空格 + 仅含 T/F 的串;
  • 所有试卷字符串后面的字母数相同,记为 LL1L171 \le L \le 17);
  • 0ciL0 \le c_i \le L