P3131 [USACO16JAN]Subsequences Summing to Sevens S
#include <bits/stdc++.h>
using namespace std;
long long n=0;
long long a,sum[50010];//sum=前缀和
long long x=0;//区间长度
long long maxn=0;//最长的区间长度
#pragma GCC optimize(3,"Ofast","inline")
inline int read()
{
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')w=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
inline void Write(int a)
{
if(a>9)
Write(a/10);
putchar(a%10+'0');
}
int main()
{
n=read();
for(long long i=1; i<=n; i++)
{
a=read();//输入
sum[i]=sum[i-1]+a;//取前缀和
}
for(long long i=1; i<=n; i++)
{
for(long long j=n; j>=i; j--)
{
if(maxn>(j-i+1))break;
if((sum[j]-sum[i-1])%7==0)maxn=max(maxn,j-i+1);
}
}
Write(maxn);
//输出
return 0;
}