AT_joi2013ho1.電飾 (Illumination)
普及-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在 JOI 高中的文化节上,每年都会在走廊上装饰灯饰。灯饰由 N 个灯泡组成,这些灯泡从走廊的西侧到东侧排成一列。每个灯泡要么是亮着的,要么是灭着的。
JOI 高中的仓库里有一台可以操作灯泡的机器。这台机器可以指定灯饰中一段连续的灯泡,将指定范围内所有亮着的灯泡变为灭着,所有灭着的灯泡变为亮着。但由于机器老化,只能使用 1 次。
JOI 高中的学生们喜欢亮灭交替排列的灯泡序列(这种灯泡序列称为交替序列)。因此,他们希望通过最多使用一次机器,使灯饰中包含尽可能长的交替序列。
输入格式
从标准输入读取以下数据:
- 第 1 行为整数 N。
- 第 2 行有 N 个用空格分隔的 0 或 1,表示操作机器前每个灯泡的状态。从左到右第 i 个数(1≤i≤N)表示从西侧起第 i 个灯泡的状态,1 表示灯泡亮着,0 表示灯泡灭着。
输出格式
输出一个整数,表示通过最多使用一次机器后,灯饰中所能包含的最长交替序列的长度。
输入输出样例
输入#1
10 1 1 0 0 1 0 1 1 1 0
输出#1
7
输入#2
10 1 0 0 0 0 1 0 1 0 1
输出#2
8
输入#3
5 1 1 0 1 1
输出#3
5
输入#4
3 0 1 0
输出#4
3
说明/提示
例子
例如,灯饰从西到东的排列为:
○ ○ ● ● ○ ● ○ ○ ○ ●
(○ 表示亮着的灯泡,● 表示灭着的灯泡)
此时,如果对第 4 个到第 7 个灯泡使用机器:
○ ○ ● ○ ● ○ ● ○ ○ ●
则第 2 个到第 8 个灯泡构成了长度为 7 的交替序列。
○ ○ ● ○ ● ○ ● ○ ○ ●
如果只对第 8 个灯泡使用机器:
○ ○ ● ● ○ ● ○ ● ○ ●
则第 4 个到第 10 个灯泡构成了长度为 7 的交替序列。
○ ○ ● ● ○ ● ○ ● ○ ●
最多使用一次机器,无法得到长度大于 8 的交替序列。
任务
给定灯饰的信息,请编写程序,求出通过最多使用一次机器后,灯饰中所能包含的最长交替序列的长度。
限制
2≤N≤100000
评分标准
在 20% 的测试点中,N≤500。
在 40% 的测试点中,N≤2000。
样例解释 1
这是题目描述中的例子。
样例解释 2
如果只操作西侧第 4 个灯泡,可以得到长度为 8 的交替序列。
样例解释 3
如果操作西侧第 2 个到第 4 个灯泡,可以使所有灯泡构成交替序列。
样例解释 4
注意,有时可以不使用机器。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?