P12102 [NERC2024] Knowns and Unknowns
题目描述
两位数学教授在同一天安排了答疑时间。学生们按顺序依次拜访每位教授。在整个学期中,这两位教授各自为学生设定了一个固定的拜访顺序。共有 $n$ 名学生,编号为 $1$ 到 $n$。每位教授的学生拜访顺序都是 $1$ 到 $n$ 的一个排列。
今天,并不是所有学生都来到了学校。设 $A$ 表示今天到校学生的编号集合。集合 $A$ 中的每个学生都拜访了两位教授,集合外的学生则没有拜访任何教授。
两位教授各自记录了今天与学生交流的名单,记录顺序与学生实际拜访顺序一致。注意,该名单必须是教授原定顺序中剔除未到学生后的结果。同时,由于学期刚开始,教授们尚未认全所有学生。对于认识的学生,名单上记录的是其编号;对于不认识的学生,则用 $-1$ 表示。
来看一个例子:第一位教授原定顺序为 $[1, 2, 3, 4]$,第二位教授的顺序为 $[3, 2, 4, 1]$。他们今天记录的名单分别为 $[1, -1, -1]$ 和 $[3, -1, 1]$。由此我们可以看出,有三位学生今天来了学校。可以推断集合 $A$ 可能是 $\{1, 2, 3\}$ 或 $\{1, 3, 4\}$。
你将获得两位教授原定的学生顺序,以及他们今天各自记录的名单。你的任务是帮助教授们分析:对于每个学生,判断他是否一定来过学校,一定没来过,或无法确定。需要注意的是,教授们可能记错了学生,因此给出的数据也可能是不一致的。
输入格式
第一行包含一个整数 $T\;(T \ge 1)$,表示测试数据组数。
接下来是 $T$ 组测试数据,每组格式如下:
- 第一行一个整数 $n$($1 \le n \le 2000$),表示学生人数。
- 第二行 $n$ 个两两不同的整数 $p_{1,1}, p_{1,2}, \ldots, p_{1,n}$,表示第一位教授原定的学生拜访顺序,其中 $p_{1,1}$ 最先,$p_{1,n}$ 最后。
- 第三行 $n$ 个两两不同的整数 $p_{2,1}, p_{2,2}, \ldots, p_{2,n}$,表示第二位教授的顺序,格式同上。
- 第四行一个整数 $k$($1 \le k \le n$),表示今天到校的学生数量。
- 第五行 $k$ 个整数 $s_{1,1}, s_{1,2}, \ldots, s_{1,k}$,表示第一位教授的记录。每个学生最多出现一次,值为 $-1$ 表示不认识该学生,否则为其编号。
- 第六行 $k$ 个整数 $s_{2,1}, s_{2,2}, \ldots, s_{2,k}$,表示第二位教授的记录,格式同上。
所有测试数据中 $n$ 的总和不超过 $2000$。
输出格式
对于每组测试数据,输出一行:
- 如果数据不一致,输出一行单词 $\texttt{Inconsistent}$;
- 否则,输出一个长度为 $n$ 的字符串,第 $i$ 个字符表示第 $i$ 位学生的状态:
- 若确定来过,输出 $\texttt{Y}$;
- 若确定没来,输出 $\texttt{N}$;
- 若无法确定,输出 $\texttt{?}$。