AT_pakencamp_2018_day2_c クリスマス飾り(Christmas Decorations)

题目描述

现在有 $N$ 个圣诞装饰品,我决定把他们排成一列。 装饰品们有 $N$ 种不同的颜色(如红、蓝、金色等),编号为 $1,2,\cdots ,N$。 从左到右数第 $i$ 个装饰品的颜色为 $a_i$,但是有些装饰品的颜色还未确定,所以用 $a_i=0$来表示。 你想尽可能地来缩短圣诞装饰品们的“周期”。圣诞装饰品们的“周期”定义如下: - 从左到右数 $X$ 个装饰品的颜色,在之后的装饰品颜色也重复(在最后可以中断),那么 $X$ 即为装饰品的“周期”。 - 也就是说,如果从左往右数第 $i$ 为 $p_i$,在所有满足 $i(1 \le i \le N-X)$且$p_i=p_{i+X}$ 的 $X$ 中最小的 $X$ 即为装饰品的“周期”。 - 例如,$p=(1, 3, 2, 1, 3, 2, 1, 3)$时,装饰品们的“周期” $=3$;$p=(1, 3, 2, 1, 3, 2, 1, 3)$时,装饰品们的“周期” $=5$。另外,如果装饰品们颜色全部相同,装饰品们的“周期” $=1$。 现在问你,如果确定了没有颜色的圣诞装饰品的颜色后,装饰品们的“周期”最小是多少?

输入格式

第一行一个整数 $N$,表示圣诞装饰品的个数。 第二行 $N$ 个整数 $a_i$,表示第 $i$ 个装饰品的颜色,其中 $a_i=0$表示该装饰品没有颜色。

输出格式

一行一个整数,表示装饰品们“周期”的最小值。

说明/提示

- $1 \le N \le 2019$ - $0 \le a_i \le N$ ### 特殊性质 特殊性质1[10分] - 满足 $N \le 3$。 特殊性质2[30分] - 满足 $a_i \neq 0$。 特殊性质3[30分] - 满足 $N \le 50$。 特殊性质4[30分] - 没有其他限制。 ### 样例解释1 圣诞装饰品们的第 $4$ 个、第 $8$ 个和第 $11$ 个还没确定,如果把这些装饰品的颜色换为 $1,2,2$,即装饰品们的颜色为 $(1,2,3,1,2,3,1,2,3,1,2)$,那么装饰品们的周期为 $3$。由于没有其他办法可以让答案更小,所以最终的周期为 $3$。 ### 样例解释2 所有颜色均已确定,所以该装饰品们的周期为3。另外,该输入满足特殊性质 $1$ 和 特殊性质 $2$。 ### 样例解释3 如果将装饰品们的颜色设为 $(12,2,4,12,2,4,12,2,4,12,2,4,12)$,那么装饰品们的周期是最小的,为 $3$。