#P12102. [NERC2024] Knowns and Unknowns

[NERC2024] Knowns and Unknowns

Description

两位数学教授在同一天安排了答疑时间。学生们按顺序依次拜访每位教授。在整个学期中,这两位教授各自为学生设定了一个固定的拜访顺序。共有 nn 名学生,编号为 11nn。每位教授的学生拜访顺序都是 11nn 的一个排列。

今天,并不是所有学生都来到了学校。设 AA 表示今天到校学生的编号集合。集合 AA 中的每个学生都拜访了两位教授,集合外的学生则没有拜访任何教授。

两位教授各自记录了今天与学生交流的名单,记录顺序与学生实际拜访顺序一致。注意,该名单必须是教授原定顺序中剔除未到学生后的结果。同时,由于学期刚开始,教授们尚未认全所有学生。对于认识的学生,名单上记录的是其编号;对于不认识的学生,则用 1-1 表示。

来看一个例子:第一位教授原定顺序为 [1,2,3,4][1, 2, 3, 4],第二位教授的顺序为 [3,2,4,1][3, 2, 4, 1]。他们今天记录的名单分别为 [1,1,1][1, -1, -1][3,1,1][3, -1, 1]。由此我们可以看出,有三位学生今天来了学校。可以推断集合 AA 可能是 {1,2,3}\{1, 2, 3\}{1,3,4}\{1, 3, 4\}

你将获得两位教授原定的学生顺序,以及他们今天各自记录的名单。你的任务是帮助教授们分析:对于每个学生,判断他是否一定来过学校,一定没来过,或无法确定。需要注意的是,教授们可能记错了学生,因此给出的数据也可能是不一致的。

Input Format

第一行包含一个整数 T  (T1)T\;(T \ge 1),表示测试数据组数。

接下来是 TT 组测试数据,每组格式如下:

  • 第一行一个整数 nn1n20001 \le n \le 2000),表示学生人数。
  • 第二行 nn 个两两不同的整数 p1,1,p1,2,,p1,np_{1,1}, p_{1,2}, \ldots, p_{1,n},表示第一位教授原定的学生拜访顺序,其中 p1,1p_{1,1} 最先,p1,np_{1,n} 最后。
  • 第三行 nn 个两两不同的整数 p2,1,p2,2,,p2,np_{2,1}, p_{2,2}, \ldots, p_{2,n},表示第二位教授的顺序,格式同上。
  • 第四行一个整数 kk1kn1 \le k \le n),表示今天到校的学生数量。
  • 第五行 kk 个整数 s1,1,s1,2,,s1,ks_{1,1}, s_{1,2}, \ldots, s_{1,k},表示第一位教授的记录。每个学生最多出现一次,值为 1-1 表示不认识该学生,否则为其编号。
  • 第六行 kk 个整数 s2,1,s2,2,,s2,ks_{2,1}, s_{2,2}, \ldots, s_{2,k},表示第二位教授的记录,格式同上。

所有测试数据中 nn 的总和不超过 20002000

Output Format

对于每组测试数据,输出一行:

  • 如果数据不一致,输出一行单词 Inconsistent\texttt{Inconsistent}
  • 否则,输出一个长度为 nn 的字符串,第 ii 个字符表示第 ii 位学生的状态:
    • 若确定来过,输出 Y\texttt{Y}
    • 若确定没来,输出 N\texttt{N}
    • 若无法确定,输出 ?\texttt{?}
2
4
1 2 3 4
3 2 4 1
3
1 -1 -1
3 -1 1
4
1 2 3 4
3 2 4 1
3
1 -1 2
3 -1 1
Y?Y?
Inconsistent
2
3
1 2 3
2 1 3
2
-1 2
-1 -1
3
1 2 3
3 2 1
2
1 3
2 -1
YYN
Inconsistent