#P14735. [ICPC 2021 Seoul R] Double Rainbow

    ID: 14665 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>单调队列2021ICPC双指针 two-pointer首尔

[ICPC 2021 Seoul R] Double Rainbow

Description

PPxx 轴上 nn 个点的集合,每个点被染成 kk 种颜色 1,2,,k1, 2, \ldots, k 中的一种。对于 kk 种颜色中的每种颜色 iiPP 中至少有一个点被染成颜色 ii。对于 PP 的一个连续点子集 PP',如果 PP'PPP \setminus P' 都包含每种颜色的至少一个点,那么我们称 PP' 构成一个 双彩虹。请参见下图作为示例。集合 PP 包含十个点,每个点被染成颜色 11223344 之一。矩形中包含的五个连续点组成的集合 PP' 构成了一个双彩虹。

:::align{center} :::

给定点集 PP 和颜色数量 kk 作为输入,请编写一个程序,计算并输出构成双彩虹的 PP' 的最小大小。

Input Format

你的程序需要从标准输入读取数据。输入的第一行包含两个整数 nnkk (1kn10,0001 \leq k \leq n \leq 10,000),其中 nnPP 中点的数量,kk 是颜色的数量。接下来的 nn 行每行包含一个 11kk(含)之间的整数,第 ii 行对应于 PP 中从左数第 ii 个点的颜色。

Output Format

你的程序需要向标准输出写入数据。输出恰好一行。该行应包含构成双彩虹的 PP' 的最小大小。如果不存在这样的 PP',则输出 00

10 4
1
2
3
1
1
4
2
4
3
3
5
6 3
1
1
2
2
3
3
0

Hint

翻译由 DeepSeek V3 完成