#P9467. [EGOI2023] Carnival General / 狂欢节总管
[EGOI2023] Carnival General / 狂欢节总管
题目背景
Day 2 Problem A.
题面译自 EGOI2023 carnival。
题目描述
每四年,隆德的学生都会聚到一起并举办隆德狂欢节。几天之内,公园内会挤满帐篷,并举办各种各样的庆祝活动。负责组织这一切的人被称为狂欢节总管。
共有 个狂欢节,每个狂欢节都有不同的总管。这些总管按时间顺序被编号为 到 。每个总管 都给出了他们对于前任总管的评价,他们公布了总管 从好到坏的排名。
下一届隆德狂欢节将于 2026 年举办。在此期间,所有曾经的狂欢节总管聚在一起拍了张合照。然而,如果总管 和 (其中 )最终紧挨着对方,且 在 给出的排名中严格位于后一半,那么就会很尴尬。
例如:
- 如果总管 给出的排名是
3 2 1 0
,那么 可以紧挨着 或者 站,但不能紧挨着 或者 。 - 如果总管 给出的排名是
4 3 2 1 0
,那么 可以紧挨着 站,但不能紧挨着 或者 。
下图为样例 。其中,总管 紧挨着总管 和 ,且总管 只紧挨着总管 。
你已知所有总管给出的排名。你的任务是将所有总管 安排到一排,使得如果 和 紧挨着(其中 ),那么 并非严格位于 给出排名的后一半。
输入格式
第一行一个整数 ,表示总管总数。
接下来 行包含所有排名。其中的第一行是总管 给出的排名,第二行是总管 给出的排名,以此类推直到总管 。总管 不在输入中,因为总管 没有任何前任总管可供排名。
总管 的排名是一个长度为 的列表 ,其中每个整数从 到 且恰好出现一次。具体地,根据总管 的排名, 是最好的总管, 是最差的总管。
输出格式
输出一列整数,一个整数 的排列,使得对于每对相邻整数,不存在一个在另一个排名的后一半。
可以证明一定有解。如果有多解,你可以输出任意一个。
6
0
1 0
2 1 0
3 2 1 0
4 3 2 1 0
4 2 5 3 1 0
5
0
0 1
0 1 2
0 1 2 3
2 0 4 1 3
4
0
1 0
0 2 1
3 0 1 2
提示
样例 解释
样例 符合子任务一的要求。在样例中,总管 和 都不能紧挨着总管 站,总管 和 都不能紧挨着总管 和 站。样例输出见上图。
样例 解释
样例 符合子任务二的要求。在样例中,总管 不能紧挨着总管 站,总管 不能紧挨着总管 站,总管 不能紧挨着总管 和 站。
样例 解释
样例 符合子任务三的要求。在样例中,只有 和 两对总管不能彼此紧挨着站。因此,如果安排为 3 0 1 2
,并不会有冲突。另一种可能的答案是 0 1 2 3
。
数据范围
对于全部数据,,。
- 子任务一( 分):总管 给出的排名为 。
- 子任务二( 分):总管 给出的排名为 。
- 子任务三( 分):。
- 子任务四( 分):无特殊限制。