#12771. Subsequences Summing to Sevens

Subsequences Summing to Sevens

🐄 Subsequences Summing to Sevens

USACO 2016 January Contest · Silver


农夫 John 的 N 头奶牛正站成一排(她们似乎时不时就喜欢这样排队)。

每头奶牛都有一个 ​唯一的整数编号 ID​,这样农夫 John 才能区分它们。

农夫 John 想给 一段连续的奶牛拍照。但由于童年时期与数字 1…6 有过一段不太愉快的经历,他只愿意拍摄 编号之和是 7 的倍数 的奶牛群。

请你帮助农夫 John 计算:

他最多可以拍摄 ​多少头连续的奶牛​。


输入格式(div7.in)

第一行包含一个整数:

N

表示奶牛的数量。

接下来 ​N 行​,每行包含一个整数,表示一头奶牛的 ​编号 ID​。

数据范围:

  • (1N50,000)(1 \le N \le 50,000)
  • 每个 ID 的范围为 (01,000,000)(0 \sim 1,000,000)

输出格式(div7.out)

输出一个整数:

最大连续奶牛数量

即 ​编号之和为 7 的倍数的最长连续子段长度​。

如果不存在这样的连续子段,则输出:

0

注意事项

如果连续区间很大,其编号总和可能 ​超过 32 位整数的范围​。

因此在 C/C++ 中,计算总和时建议使用 ​**64 位整数类型 long long**​。


样例输入

7
3
5
1
6
2
14
10

样例输出

5

样例解释

存在一段连续子序列:

5 1 6 2 14

它们的和为:

5 + 1 + 6 + 2 + 14 = 28

而:

28 是 7 的倍数

因此最长满足条件的连续子段长度为 ​5​。