CF1141B Maximal Continuous Rest

题目描述

在 Berland,每天有 $n$ 个小时。Polycarp 很注重时间管理,因此他每天都有一个固定的作息安排——这是一个长度为 $n$ 的序列 $a_1, a_2, \dots, a_n$(每个 $a_i$ 只能是 $0$ 或 $1$),其中 $a_i=0$ 表示 Polycarp 在第 $i$ 个小时工作,$a_i=1$ 表示 Polycarp 在第 $i$ 个小时休息。 日子会无休止地连续进行,Polycarp 每天都使用相同的作息表。 请你求出 Polycarp 连续休息的最长小时数是多少。注意,由于天数是无限循环的,你需要考虑跨天的情况。保证每天至少有一个工作小时。

输入格式

第一行包含一个整数 $n$($1 \le n \le 2\cdot10^5$),表示每天的小时数。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($0 \le a_i \le 1$),其中 $a_i=0$ 表示第 $i$ 个小时为工作时间,$a_i=1$ 表示第 $i$ 个小时为休息时间。保证至少存在一个 $a_i=0$。

输出格式

输出 Polycarp 连续休息的最长小时数。注意要考虑天数无限循环的情况,即可以跨天统计连续休息时间。

说明/提示

在第一个样例中,最长的休息时间从最后一个小时延续到第二天的第一个小时。 在第二个样例中,Polycarp 最长的休息时间是从第 $4$ 小时到第 $5$ 小时。 在第三个样例中,Polycarp 最长的休息时间是从第 $3$ 小时到第 $5$ 小时。 在第四个样例中,Polycarp 没有任何休息时间。 由 ChatGPT 4.1 翻译