P12768 [POI 2018 R3] 三人编程锦标赛 Triinformathlon
题目背景
翻译来自于 [LibreOJ](https://loj.ac/p/5076)。
题目描述
**题目译自 [XXV Olimpiada Informatyczna — III etap](https://sio2.mimuw.edu.pl/c/oi25-3/dashboard/) [Turniej trójinformatyczny](https://szkopul.edu.pl/problemset/problem/URPMk7vthz60i1J3MT3XbIIO/statement/)**
**请注意本题的空间限制。**
拜托尼亚的程序员深受国民敬仰。因此,近年来的电视节目《三人编程锦标赛》收视率屡创新高。本届锦标赛有 $n$ 名选手(编号 $1$ 至 $n$),他们角逐三项编程赛事(分别是限时实现后缀树、调试 SIO2 系统和解决图灵测试)。每项赛事均公布完整排名,明确每位选手的名次,且无并列情况。
每位拜托尼亚居民都支持某位选手,他们热衷于无休止的争论——尤其在社交媒体上——讨论某选手是否比另一位更优秀。三项赛事使得「更优秀」的定义颇为模糊,增添了讨论的火药味。
Bajtazar 希望满足居民的期待,开发一款应用,快速比较锦标赛选手的成绩。他引入了以下关系:
若满足以下至少一项,选手 $a$ 在道德上优于选手 $b$:
- 在三项赛事中至少两项,选手 $a$ 的名次优于 $b$;
- 存在选手 $c$,使得 $a$ 在道德上优于 $c$,且 $c$ 在道德上优于 $b$。
Bajtazar 的创业公司近期订单繁忙,比较选手的算法任务全权委托给你。编写程序,根据三项赛事的选手排名,回答 $m$ 个查询:「选手 $a$ 是否在道德上优于选手 $b$?」
输入格式
第一行包含一个整数 $n$ $(n \geq 2)$,表示锦标赛选手数量。
第二行包含 $n$ 个互不相同的整数,范围 $[1, n]$,表示第一项赛事中各选手的名次。
第三行和第四行类似,分别表示第二项和第三项赛事的排名,格式相同。
第五行包含一个整数 $m$ $(m \geq 1)$,表示查询数量。
接下来的 $m$ 行描述查询,第 $i$ 行包含两个整数 $a_i, b_i$ $(1 \leq a_i, b_i \leq n, a_i \neq b_i)$,表示查询「选手 $a_i$ 是否在道德上优于选手 $b_i$?」。
输出格式
输出 $m$ 行,第 $i$ 行包含一个字符串 `TAK` 或 `NIE`,表示第 $i$ 个查询的答案。
说明/提示
**样例 1 解释**
选手 $2$ 在道德上优于选手 $4$,因其在第一和第三项赛事中名次优于 $4$。
反之,选手 $4$ 也在道德上优于选手 $2$,因 $4$ 在第二和第三项赛事中优于选手 $1$,而 $1$ 在第一和第二项赛事中优于 $2$。
选手 $1$ 在道德上优于选手 $5$,因其在所有赛事中名次均优于 $5$。
选手 $5$ 未在道德上优于选手 $1$,因仅在至少两项赛事中优于选手 $3$,但 $3$ 未在任何两项赛事中优于其他选手。
**附加样例**
1. $n=10, m=90$,所有排名随机,查询覆盖所有可能。
2. $n=1000, m=1000$,三项赛事排名相同,查询随机。
3. $n=100000, m=10$,第一项赛事排名 $1,2,\ldots,n$,第二项排名 $n,n-1,\ldots,1$,第三项排名随机,查询 $10$ 个,随机生成。
详细子任务附加限制及分值如下表所示。
| 子任务 | 附加限制 | 分值 |
| :---: | :--: | :---: |
| $1$ | $n, m \leq 100$ | $9$ |
| $2$ | $n \leq 300, m \leq 100000$ | $10$ |
| $3$ | $n \leq 1000, m \leq 1000000$ | $18$ |
| $4$ | $n \leq 100000, m \leq 10$ | $27$ |
| $5$ | $n \leq 500000, m \leq 1000000$ | $36$ |