P15622 [ICPC 2022 Jakarta R] The Only Mode
题目描述
给定一个大小为 $N$ 的整数数组 $A$(下标从 $1$ 到 $N$),其中 $A_i$ 的取值是 $0$、$1$、$2$ 或 $3$。数组 $A$ 的一个子数组 $\langle l, r \rangle$ 定义为 $[A_l, A_{l+1}, \cdots, A_r]$,其大小为 $r - l + 1$。
对于一个子数组 $\langle l, r \rangle$,当且仅当值 $x$ 在该子数组中出现的次数**严格**多于其他任何值时,称 $x$ 是该子数组的**唯一众数**。
你在本题中的任务是,对于每个 $x \in \{0, 1, 2, 3\}$,找出 $A$ 中满足 $x$ 是其唯一众数的最长子数组的大小;或者确定 $x$ 不可能成为任何子数组的唯一众数。
输入格式
输入以一个整数 $N$($1 \leq N \leq 100\,000$)开始,表示数组 $A$ 的大小。接下来一行包含 $N$ 个整数 $A_i$($A_i \in \{0, 1, 2, 3\}$)。
输出格式
在一行中输出四个以空格分隔的整数。每个整数依次对应 $x$ 为 $0$、$1$、$2$ 和 $3$ 时的答案。对于每个 $x$,如果存在某个子数组使得 $x$ 是该子数组的唯一众数,则输出满足条件的最长子数组的大小;否则输出 $0$。
说明/提示
#### 样例输入/输出 #1 的解释
- 满足 $0$ 是唯一众数的最长子数组是 $\langle 3, 6 \rangle$,长度为 $4$,即 $[2, 0, 3, 0]$。
- 满足 $1$ 是唯一众数的最长子数组是 $\langle 1, 1 \rangle$,长度为 $1$,即 $[1]$。
- 满足 $2$ 是唯一众数的最长子数组是 $\langle 1, 5 \rangle$,长度为 $5$,即 $[1, 2, 2, 0, 3]$。
- 满足 $3$ 是唯一众数的最长子数组是 $\langle 5, 7 \rangle$,长度为 $3$,即 $[3, 0, 3]$。
#### 样例输入/输出 #2 的解释
- 满足 $0$ 是唯一众数的最长子数组是 $\langle 1, 4 \rangle$ 或 $\langle 2, 5 \rangle$。
- 满足 $1$ 是唯一众数的最长子数组是 $\langle 3, 11 \rangle$。
- 满足 $2$ 是唯一众数的最长子数组是 $\langle 1, 1 \rangle$、$\langle 5, 5 \rangle$ 或 $\langle 9, 9 \rangle$。
- 满足 $3$ 是唯一众数的最长子数组是 $\langle 4, 12 \rangle$。
#### 样例输入/输出 #3 的解释
满足 $0$ 或 $2$ 是唯一众数的最长子数组只包含单个元素本身;另一方面,不存在任何子数组使得 $1$ 或 $3$ 是其唯一众数。
翻译由 DeepSeek 完成