#P15052. [UOI 2023 II Stage] Memory training

    ID: 16982 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>模拟2023排序双指针 two-pointerUOI(乌克兰)

[UOI 2023 II Stage] Memory training

题目描述

Vasyl 和 Petro 正在训练他们的记忆力。为此,他们取一个包含 nn 个元素的数组 A[1..n]A[1..n],并执行以下操作:

  • 首先,Vasyl 从数组中任意取一个数,并以随机顺序报出数组中所有其他元素。
  • 然后 Petro 从 Vasyl 报出的数组中任意取一个数,并以随机顺序报出该数组中所有其他元素。
  • 接着 Vasyl 再次进行他的回合。
  • 然后 Petro 进行他的回合。
  • 依此类推。

显然,经过 nn 轮操作后,数组 AA 的所有元素将被分配给 Vasyl 和 Petro。

让我们看一个记忆力训练的例子。假设初始数组为 A=[1  2  3  4  5  6]A = [1\; 2\; 3\; 4\; 5\; 6]

  • Vasyl 进行第一步操作:[3  6  1  2  4][3\; 6\; 1\; 2\; 4]。他取走了数字 55,并以随机顺序报出了数组 AA 的所有其他元素。
  • 接着 Petro 报出这个数组:[2  6  3  4][2\; 6\; 3\; 4]。他为自己取走了数字 11
  • Vasyl 报出这个数组:[3  4  6][3\; 4\; 6]。他为自己取走了数字 22
  • Petro 报出这个数组:[4  3][4\; 3]。他为自己取走了数字 66
  • Vasyl 报出这个数组:[3][3]。他为自己取走了数字 44
  • Petro 取走最后一个数字 33 归自己。
  • 因此,Vasyl 得到了数字 [2  4  5][2\;4\; 5],而 Petro 得到了数字 [1  3  6][1\; 3\; 6]

编写一个程序,根据给定的输入数组和操作序列,确定谁得到了哪些元素。

输入格式

  • 第一行包含一个整数 nn2n10002 \leq n \leq 1\,000)——数组的元素个数。
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n109ai109-10^9 \leq a_i \leq 10^9)。
  • 接下来的 (n1)(n-1) 行,每行包含一个由 Vasyl 或 Petro 报出的数组。保证这些数组是正确的,即每个数组都可以由前一个数组得到。

输出格式

  • 第一行输出 Vasyl 取走的元素,按非降序排列。
  • 第二行输出 Petro 取走的元素,按非降序排列。
6
1 2 3 4 5 6
3 6 1 2 4
2 6 3 4
3 4 6
4 3
3
2 4 5 
1 3 6 
5
1 8 4 2 100
2 4 100 8
100 2 8
2 8
2
1 2 100 
4 8 

提示

本题中,每个测试点是独立评分的。此外:

  • 22%22\% 的测试点中,初始数组 AA 中的每个整数 11nn 恰好出现一次。
  • 35%35\% 的测试点中,n10n \leq 10

翻译由 DeepSeek V3 完成