P13802 [SWERC 2023] Team selection

题目描述

:::align{center} ![](https://espresso.codeforces.com/f3377480e15684bf0ebb3d7761cfa23137b681ff.png) ::: 两位队长需要从编号为 $1$ 到 $N$ 的一组球员中轮流挑选队员组建各自的队伍。两位队长轮流选择,每次从剩余球员中挑选第 $k$ 个球员,具体选择顺序由他们各自认为最适合加入自己队伍的球员决定。 给定两位队长的选择顺序(第一位队长先选),请计算每支队伍中球员的编号列表。

输入格式

输入包含三行。 第一行包含一个整数 $N$。 第二行包含 $N/2$ 个用空格分隔的整数 $a_1, a_2, \dots, a_{N/2}$,表示第一位队长的选择:在第 $(2k-1)$ 轮时,第一位队长选择了剩余球员中的第 $a_k$ 个。 第三行包含 $N/2$ 个用空格分隔的整数 $b_1, b_2, \dots, b_{N/2}$,表示第二位队长的选择:在第 $2k$ 轮时,第二位队长选择了剩余球员中的第 $b_k$ 个。 **数据范围** - $2 \leq N \leq 4\,000\,000$; - $N$ 是 $2$ 的倍数; - 队长的每次选择都是有效的:每一步选择的编号在 $1$ 到当前剩余球员数之间(包含两端)。

输出格式

输出两行,每行包含 $N/2$ 个用空格分隔的整数。 第一行输出 $x_1, x_2, \dots, x_{N/2}$,表示第一支队伍中球员的编号,按照被选中的顺序排列:第 $x_k$ 个球员是在第 $(2k-1)$ 轮被选中的。 第二行输出 $y_1, y_2, \dots, y_{N/2}$,表示第二支队伍中球员的编号,按照被选中的顺序排列:第 $y_k$ 个球员是在第 $2k$ 轮被选中的。

说明/提示

由 ChatGPT 4.1 翻译