P15052 [UOI 2023 II Stage] Memory training
题目描述
Vasyl 和 Petro 正在训练他们的记忆力。为此,他们取一个包含 $n$ 个元素的数组 $A[1..n]$,并执行以下操作:
- 首先,Vasyl 从数组中任意取一个数,并以随机顺序报出数组中所有其他元素。
- 然后 Petro 从 Vasyl 报出的数组中任意取一个数,并以随机顺序报出该数组中所有其他元素。
- 接着 Vasyl 再次进行他的回合。
- 然后 Petro 进行他的回合。
- 依此类推。
显然,经过 $n$ 轮操作后,数组 $A$ 的所有元素将被分配给 Vasyl 和 Petro。
让我们看一个记忆力训练的例子。假设初始数组为 $A = [1\; 2\; 3\; 4\; 5\; 6]$。
- Vasyl 进行第一步操作:$[3\; 6\; 1\; 2\; 4]$。他取走了数字 $5$,并以随机顺序报出了数组 $A$ 的所有其他元素。
- 接着 Petro 报出这个数组:$[2\; 6\; 3\; 4]$。他为自己取走了数字 $1$。
- Vasyl 报出这个数组:$[3\; 4\; 6]$。他为自己取走了数字 $2$。
- Petro 报出这个数组:$[4\; 3]$。他为自己取走了数字 $6$。
- Vasyl 报出这个数组:$[3]$。他为自己取走了数字 $4$。
- Petro 取走最后一个数字 $3$ 归自己。
- 因此,Vasyl 得到了数字 $[2\;4\; 5]$,而 Petro 得到了数字 $[1\; 3\; 6]$。
编写一个程序,根据给定的输入数组和操作序列,确定谁得到了哪些元素。
输入格式
- 第一行包含一个整数 $n$($2 \leq n \leq 1\,000$)——数组的元素个数。
- 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($-10^9 \leq a_i \leq 10^9$)。
- 接下来的 $(n-1)$ 行,每行包含一个由 Vasyl 或 Petro 报出的数组。保证这些数组是正确的,即每个数组都可以由前一个数组得到。
输出格式
- 第一行输出 Vasyl 取走的元素,按非降序排列。
- 第二行输出 Petro 取走的元素,按非降序排列。
说明/提示
本题中,每个测试点是独立评分的。此外:
- 在 $22\%$ 的测试点中,初始数组 $A$ 中的每个整数 $1$ 到 $n$ 恰好出现一次。
- 在 $35\%$ 的测试点中,$n \leq 10$。
翻译由 DeepSeek V3 完成