#HK4923. 「BalticOI 2025」BOI 缩写

「BalticOI 2025」BOI 缩写

题目描述

题目译自 BalticOI 2025 Day1「BOI acronym

你肯定知道,BOI 是波罗的海信息学奥林匹克竞赛(Baltic Olympiad in Informatics)的缩写。

不过,主办方觉得 BOI 这个缩写念起来太简单了(毕竟在英语里它只有一个音节)。所以,他们决定设计一个新的缩写。为了让它与 CEOI 等其他区域性奥林匹克竞赛的缩写区分开来,新缩写依然只由字符 BOI 组成。而且,B 必须是新缩写中最常见的字符,也就是说,B 的出现次数必须严格多于 OI 的出现次数。

例如,OBOIIBBB 是合法的缩写,但 IBIIBBBOIOBCB 则不是。

为了增加趣味性,主办方没有直接公布完整的缩写,而是提供了一些线索:他们给出了新缩写中每个连续子串中最常见字符的出现次数。注意,这个最常见字符不一定是 B,而且最常见字符也不一定唯一。令人惊讶的是,这些线索竟然足以推断出所有 B 的位置。你能找出它们吗?

输入格式

第一行包含一个整数 nn (1n2000)(1 \leq n \leq 2000),表示新缩写的长度。

接下来的 nn 行描述了线索。第 ii 行包含 ni+1n-i+1 个整数 Mi,i,Mi,i+1,,Mi,nM_{i, i}, M_{i, i+1}, \ldots, M_{i, n} (1M,rn)(1 \leq M_{\ell, r} \leq n),其中 M,rM_{\ell, r} 表示缩写中从第 \ell 个位置开始到第 rr 个位置结束的子串中,最常见字符的出现次数。位置编号从 11nn

保证至少存在一个与给定线索一致的合法缩写。

输出格式

输出一行,包含所有 B 出现的位置,按升序排列,位置之间用单个空格分隔。每个位置必须是 11nn 范围内的整数。

6
1 1 2 3 3 3
1 1 2 2 2
1 2 2 2
1 1 2
1 2
1

1 3 4

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
11 n10n \leq 10 1111
22 目标缩写只包含字符 BO 1212
33 目标缩写中没有两个连续的相同字符 1010
44 n40n \leq 40 1111
55 n500n \leq 500 1919
66 无附加限制 3737