QOJ.ac

QOJ

Time Limit: 5 s Memory Limit: 128 MB Total points: 100

#8800. 三项全能赛

Statistics

Byteotian 的信息学选手在全国备受尊敬。正因如此,一档名为《Triinformathlon》的电视节目多年来一直非常受欢迎。在今年的比赛中,有 $n$ 名选手(编号从 $1$ 到 $n$)参加了三项信息学学科的角逐(今年是:后缀树的限时实现、SIO2 系统调试以及图灵测试)。每项学科的完整排名均已公布,因此每位选手在各学科中的名次都是已知的。复杂的平局决胜规则确保了没有任何学科出现并列名次。

每位 Byteotian 人都在为某位选手加油,而关于“谁比谁更强”的讨论——尤其是在社交媒体上——往往非常激烈,这已成为一种流行的消遣。由于有三项独立的学科,使得“更强”这一概念并不明确,这让此类讨论变得更加引人入胜。

Byteasar 发现了一个绝佳的机会:开发一款比较选手的应用程序应该会非常受欢迎。为了使比较成为可能,他引入了以下关系:

如果满足以下至少一个条件,则称选手 $a$ 道德上支配选手 $b$: 在三项学科中的至少两项里,$a$ 的排名高于 $b$,或者 存在一名选手 $c$,使得 $a$ 道德上支配 $c$,且 $c$ 道德上支配 $b$。$^\dagger$

Byteasar 的初创公司忙于其他项目,因此将比较算法的实现委托给了你。请编写一个程序,根据所有三项学科的排名,回答 $m$ 个形式为“选手 $a$ 是否在道德上支配选手 $b$?”的查询。

输入格式

标准输入的第一行包含一个整数 $n$ ($n \ge 2$),表示选手的数量。

第二行包含一个由 $1$ 到 $n$ 之间的整数组成的序列,这些整数两两不同,由空格分隔。这些是第一项学科中各选手的排名顺序。第三行和第四行包含类似的序列,分别指定了第二项和第三项学科的排名,格式相同。

第五行包含一个整数 $m$ ($m \ge 1$),表示查询的数量。接下来的 $m$ 行给出了这些查询:第 $i$ 行包含两个整数 $a_i$ 和 $b_i$ ($1 \le a_i, b_i \le n, a_i \neq b_i$),由空格分隔,表示查询“选手 $a_i$ 是否在道德上支配选手 $b_i$?”。

输出格式

输出应包含恰好 $m$ 行:第 $i$ 行应包含一个单词 TAK(波兰语中的“是”),如果第 $i$ 个查询的答案为肯定,或者在相反情况下输出 NIE(波兰语中的“否”)。

样例

输入 1

5
1 2 4 3 5
2 3 5 1 4
3 1 5 2 4
4
2 4
4 2
1 5
5 1

输出 1

TAK
TAK
TAK
NIE

$^\dagger$ 形式上,我们将集合 $M$ 定义为包含所有满足以下条件的序对 $(a, b)$ 的最小(包含关系意义下)集合:在至少两项学科中 $a$ 的排名高于 $b$,并且如果 $(a, c)$ 和 $(c, b)$ 都在 $M$ 中,则 $(a, b)$ 也在 $M$ 中。然后我们称 $a$ 道德上支配 $b$,当且仅当 $(a, b)$ 在 $M$ 中。

说明

样例解释:选手 2 在道德上支配选手 4,因为他在第一项和第三项学科中的排名都更高。另一方面,选手 4 也在道德上支配选手 2,因为他在第二项和第三项学科中排名高于选手 1,而选手 1 在第一项和第二项学科中排名高于选手 2。

选手 1 在道德上支配选手 5,因为他在所有学科中的排名都更高。然而,选手 5 并不在道德上支配选手 1。事实上,选手 3 是唯一一个在至少两项学科中排名低于选手 5 的人,但选手 3 在任何其他学科中都没有在至少两项学科里排名高于其他选手。

子任务

测试集由以下子集组成。在每个子集内,可能包含多个单元测试。

子任务 数据范围 分值
1 $n, m \le 100$ 9
2 $n \le 300, m \le 100\,000$ 10
3 $n \le 1000, m \le 1\,000\,000$ 18
4 $n \le 100\,000, m \le 10$ 27
5 $n \le 500\,000, m \le 1\,000\,000$ 36

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.