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 翻译