#P9467. [EGOI 2023] Carnival General / 狂欢节总管

    ID: 10666 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>2023Special JudgeO2优化EGOI(欧洲/女生)

[EGOI 2023] Carnival General / 狂欢节总管

背景

Day 2 Problem A.

题面译自 EGOI2023 carnival。

CC BY-SA 3.0

题目描述

每四年,隆德的学生都会聚到一起并举办隆德狂欢节。几天之内,公园内会挤满帐篷,并举办各种各样的庆祝活动。负责组织这一切的人被称为狂欢节总管。

共有 NN 个狂欢节,每个狂欢节都有不同的总管。这些总管按时间顺序被编号为 00 到 N−1N-1。每个总管 ii 都给出了他们对于前任总管的评价,他们公布了总管 0,1,⋯ ,i−10,1,\cdots,i-1 从好到坏的排名。

下一届隆德狂欢节将于 2026 年举办。在此期间,所有曾经的狂欢节总管聚在一起拍了张合照。然而,如果总管 ii 和 jj(其中 i<ji < j)最终紧挨着对方,且 ii 在 jj 给出的排名中严格位于后一半,那么就会很尴尬。

例如:

  • 如果总管 44 给出的排名是 3 2 1 0,那么 44 可以紧挨着 33 或者 22 站,但不能紧挨着 11 或者 00。
  • 如果总管 55 给出的排名是 4 3 2 1 0,那么 55 可以紧挨着 4,3,24,3,2 站,但不能紧挨着 11 或者 00。

下图为样例 11。其中,总管 55 紧挨着总管 22 和 33,且总管 44 只紧挨着总管 22。

你已知所有总管给出的排名。你的任务是将所有总管 0,1,⋯ ,N−10,1,\cdots,N-1 安排到一排,使得如果 ii 和 jj 紧挨着(其中 i<ji < j),那么 ii 并非严格位于 jj 给出排名的后一半。

输入格式

第一行一个整数 NN,表示总管总数。

接下来 N−1N-1 行包含所有排名。其中的第一行是总管 11 给出的排名,第二行是总管 22 给出的排名,以此类推直到总管 N−1N-1。总管 00 不在输入中,因为总管 00 没有任何前任总管可供排名。

总管 ii 的排名是一个长度为 ii 的列表 pi,0,pi,1,⋯ ,pi,i−1p_{i,0},p_{i,1},\cdots,p_{i,i-1},其中每个整数从 00 到 i−1i-1 且恰好出现一次。具体地,根据总管 ii 的排名,pi,0p_{i,0} 是最好的总管,pi,i−1p_{i,i-1} 是最差的总管。

输出格式

输出一列整数,一个整数 0,1,⋯ ,N−10,1,\cdots,N-1 的排列,使得对于每对相邻整数,不存在一个在另一个排名的后一半。

可以证明一定有解。如果有多解,你可以输出任意一个。

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

提示

样例 11 解释

样例 11 符合子任务一的要求。在样例中,总管 22 和 33 都不能紧挨着总管 00 站,总管 44 和 55 都不能紧挨着总管 00 和 11 站。样例输出见上图。


样例 22 解释

样例 22 符合子任务二的要求。在样例中,总管 22 不能紧挨着总管 11 站,总管 33 不能紧挨着总管 22 站,总管 44 不能紧挨着总管 33 和 22 站。


样例 33 解释

样例 33 符合子任务三的要求。在样例中,只有 (1,3)(1,3) 和 (0,2)(0,2) 两对总管不能彼此紧挨着站。因此,如果安排为 3 0 1 2,并不会有冲突。另一种可能的答案是 0 1 2 3。


数据范围

对于全部数据,2≤N≤1032\le N\le 10^3,0≤pi,0,pi,1,⋯ ,pi,i−1≤i−10\le p_{i,0},p_{i,1},\cdots,p_{i,i-1}\le i-1。

  • 子任务一(1111 分):总管 ii 给出的排名为 i−1,i−2,⋯ ,0i-1,i-2,\cdots,0。
  • 子任务二(2323 分):总管 ii 给出的排名为 0,1,⋯ ,i−10,1,\cdots,i-1。
  • 子任务三(2929 分):N≤8N\le 8。
  • 子任务四(3737 分):无特殊限制。