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 完成