#HK5076. 「POI2018 R3」三人编程锦标赛 Triinformathlon

「POI2018 R3」三人编程锦标赛 Triinformathlon

题目描述

题目译自 XXV Olimpiada Informatyczna — III etap Turniej trójinformatyczny

拜托尼亚的程序员深受国民敬仰。因此,近年来的电视节目《三人编程锦标赛》收视率屡创新高。本届锦标赛有 nn 名选手(编号 11nn),他们角逐三项编程赛事(分别是限时实现后缀树、调试 SIO2 系统和解决图灵测试)。每项赛事均公布完整排名,明确每位选手的名次,且无并列情况。

每位拜托尼亚居民都支持某位选手,他们热衷于无休止的争论——尤其在社交媒体上——讨论某选手是否比另一位更优秀。三项赛事使得「更优秀」的定义颇为模糊,增添了讨论的火药味。

Bajtazar 希望满足居民的期待,开发一款应用,快速比较锦标赛选手的成绩。他引入了以下关系:

若满足以下至少一项,选手 aa 在道德上优于选手 bb

  • 在三项赛事中至少两项,选手 aa 的名次优于 bb
  • 存在选手 cc,使得 aa 在道德上优于 cc,且 cc 在道德上优于 bb

Bajtazar 的创业公司近期订单繁忙,比较选手的算法任务全权委托给你。编写程序,根据三项赛事的选手排名,回答 mm 个查询:「选手 aa 是否在道德上优于选手 bb?」

输入格式

第一行包含一个整数 nn (n2)(n \geq 2),表示锦标赛选手数量。

第二行包含 nn 个互不相同的整数,范围 [1,n][1, n],表示第一项赛事中各选手的名次。

第三行和第四行类似,分别表示第二项和第三项赛事的排名,格式相同。

第五行包含一个整数 mm (m1)(m \geq 1),表示查询数量。

接下来的 mm 行描述查询,第 ii 行包含两个整数 ai,bia_i, b_i (1ai,bin,aibi)(1 \leq a_i, b_i \leq n, a_i \neq b_i),表示查询「选手 aia_i 是否在道德上优于选手 bib_i?」。

输出格式

输出 mm 行,第 ii 行包含一个字符串 TAKNIE,表示第 ii 个查询的答案。

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

TAK
TAK
TAK
NIE

选手 22 在道德上优于选手 44,因其在第一和第三项赛事中名次优于 44

反之,选手 44 也在道德上优于选手 22,因 44 在第二和第三项赛事中优于选手 11,而 11 在第一和第二项赛事中优于 22

选手 11 在道德上优于选手 55,因其在所有赛事中名次均优于 55

选手 55 未在道德上优于选手 11,因仅在至少两项赛事中优于选手 33,但 33 未在任何两项赛事中优于其他选手。

附加样例

  1. n=10,m=90n=10, m=90,所有排名随机,查询覆盖所有可能。
  2. n=1000,m=1000n=1000, m=1000,三项赛事排名相同,查询随机。
  3. n=100000,m=10n=100000, m=10,第一项赛事排名 1,2,,n1,2,\ldots,n,第二项排名 n,n1,,1n,n-1,\ldots,1,第三项排名随机,查询 1010 个,随机生成。

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 n,m100n, m \leq 100 99
22 n300,m100000n \leq 300, m \leq 100000 1010
33 n1000,m1000000n \leq 1000, m \leq 1000000 1818
44 n100000,m10n \leq 100000, m \leq 10 2727
55 n500000,m1000000n \leq 500000, m \leq 1000000 3636