CF1138A Sushi for Two
题目描述
Arkady 邀请 Anna 去寿司餐厅共进晚餐。这家餐厅有些特别:它提供 $n$ 块寿司,这些寿司排成一排,顾客必须选择一个连续的子段来购买。
寿司有两种类型:金枪鱼寿司和鳗鱼寿司。我们用 $t_i$ 表示从左到右第 $i$ 块寿司的类型,其中 $t_i = 1$ 表示金枪鱼寿司,$t_i = 2$ 表示鳗鱼寿司。
Arkady 不喜欢金枪鱼,Anna 不喜欢鳗鱼。Arkady 想选择一个连续的寿司子段,使得该子段中两种寿司的数量相等,并且子段的前一半和后一半分别只包含一种寿司。例如,子段 $[2, 2, 2, 1, 1, 1]$ 是合法的,但子段 $[1, 2, 1, 2, 1, 2]$ 不是合法的,因为它的每一半都包含了两种寿司。
请你求出 Arkady 能够选择的最长合法连续子段的长度。
输入格式
第一行包含一个整数 $n$($2 \le n \le 100\,000$),表示寿司的数量。
第二行包含 $n$ 个整数 $t_1, t_2, \ldots, t_n$($t_i = 1$ 表示金枪鱼寿司,$t_i = 2$ 表示鳗鱼寿司),表示从左到右每块寿司的类型。
保证至少有一块金枪鱼寿司和一块鳗鱼寿司。这意味着至少存在一个合法的连续子段。
输出格式
输出一个整数,表示最长合法连续子段的长度。
说明/提示
在第一个样例中,Arkady 可以选择子段 $[2, 2, 1, 1]$ 或 $[1, 1, 2, 2]$,长度为 $4$。
在第二个样例中,只能选择子段 $[2, 1]$ 或 $[1, 2]$,长度为 $2$。
在第三个样例中,Arkady 最好的选择是子段 $[1, 1, 1, 2, 2, 2]$。
由 ChatGPT 4.1 翻译