AT_code_thanks_festival_2015_d 暴露

题目描述

在一个有 $N$ 名学生的学园里,每个学生的编号从 $1$ 到 $N$,期末考试已经结束。考试满分为 $100$ 分,每个学生都获得了一个非负整数分数。 在这个学园中,每个学生只会被告知自己的得分以及所有考生的总分,除此之外不会被告知其他信息。 然而,每个学生都很关心其他同学的分数。因此,学生们会向其他同学打听分数,并根据这些信息来推测其他同学的得分。 你作为学园的老师,对学生们通过这些行为能够推断出多少分数感到好奇,因此决定调查学生们能够确定多少分数。 具体来说,你需要按照编号升序处理下面给出的 $M$ 个信息查询或提问查询,并计算每个提问查询的答案。 - 每个查询都由 $3$ 个整数 $a_i\ (0\leq a_i\leq 1)$、$b_i\ (1\leq b_i\leq N)$、$c_i\ (1\leq c_i\leq N,\ b_i\neq c_i)$ 给出。 - 当 $a_i=0$ 时,第 $i$ 个查询为信息查询,表示学生 $b_i$ 知道了学生 $c_i$ 的得分。 - 当 $a_i=1$ 时,第 $i$ 个查询为提问查询,表示你需要回答:在第 $i$ 个查询之前的所有信息查询和学生原本已知的信息下,学生 $b_i$ 能够判断学生 $c_i$ 的得分至少是多少,至多是多少。

输入格式

输入按以下格式从标准输入给出。 > $N$ > $s_1$ > $s_2$ > $\vdots$ > $s_N$ > $M$ > $a_1$ $b_1$ $c_1$ > $a_2$ $b_2$ $c_2$ > $\vdots$ > $a_M$ $b_M$ $c_M$ - 第 $1$ 行为学生人数 $N\ (2\leq N\leq 50)$。 - 第 $2$ 行到第 $N+1$ 行,每行一个整数,第 $i$ 行为学生 $i$ 的得分 $s_i\ (0\leq s_i\leq 100)$。 - 第 $N+2$ 行为查询数 $M\ (1\leq M\leq 5,000)$。 - 第 $N+3$ 行到第 $N+2+M$ 行,每行 $3$ 个整数 $a_i\ (0\leq a_i\leq 1)$、$b_i\ (1\leq b_i\leq N)$、$c_i\ (1\leq c_i\leq N,\ b_i\neq c_i)$,用空格分隔,表示第 $i$ 个查询。 - 对于任意 $1\leq i

输出格式

设 $M$ 个查询中提问查询的个数为 $Q$,输出共 $Q$ 行。第 $i$ 行输出第 $i$ 个提问查询的答案。如果答案是 $x$ 分以上 $y$ 分以下,则输出 $x$ 和 $y$,用空格分隔。输出末尾需换行。

说明/提示

### 样例解释 1 有 $4$ 名学生,共有 $6$ 个查询。 - 查询 $1$ 是信息查询。学生 $2$ 知道了学生 $3$ 的得分为 $70$ 分。 - 查询 $2$ 是信息查询。学生 $4$ 知道了学生 $2$ 的得分为 $90$ 分。 - 查询 $3$ 是提问查询。此时学生 $2$ 已知总分 $80+90+70+100=340$,自己的得分 $90$,以及学生 $3$ 的得分 $70$,所以可以判断学生 $4$ 的得分在 $80$ 分以上 $100$ 分以下。因此输出的第 $1$ 行为 `80 100`。 - 查询 $4$ 是信息查询。学生 $2$ 知道了学生 $4$ 的得分为 $100$ 分。 - 查询 $5$ 是提问查询。此时学生 $2$ 已知总分和除学生 $1$ 外所有学生的得分,因此可以确定学生 $1$ 的得分正好为 $80$ 分。因此输出的第 $2$ 行为 `80 80`。 - 查询 $6$ 是提问查询。此时学生 $4$ 已知总分 $340$,自己的得分 $100$,以及学生 $2$ 的得分 $90$,所以可以判断学生 $1$ 的得分在 $50$ 分以上 $100$ 分以下。因此输出的第 $3$ 行为 `50 100`。 ### 样例解释 2 也有可能会对已经知道分数的同学发起提问查询。 由 ChatGPT 4.1 翻译