RT
结果比#12小一
代码:
#include<bits/stdc++.h>
using namespace std;
long long a[50005],f1,f2,f3,f4,f5,f6,u0,u1,u2,u3,u4,u5,u6;
int main(){
int n;
cin>>n;
for(int x,i=1;i<=n;i++){
cin>>x;
a[i]=x+a[i-1];
a[i]%=7;
}
for(int l=1;l<=n;l++){
switch(a[l]){
case 1:
f1=(f1==0?l:f1);
break;
case 2:
f2=(f2==0?l:f2);
break;
case 3:
f3=(f3==0?l:f3);
break;
case 4:
f4=(f4==0?l:f4);
break;
case 5:
f5=(f5==0?l:f5);
break;
case 6:
f6=(f6==0?l:f6);
break;
}
if(f1&&f2&&f3&&f4&&f5&&f6) break;
}
for(int r=n;r>0;r--){
switch(a[r]){
case 0:
u0=(u0==0?r:u0);
break;
case 1:
u1=(u1==0?r:u1);
break;
case 2:
u2=(u2==0?r:u2);
break;
case 3:
u3=(u3==0?r:u3);
break;
case 4:
u4=(u4==0?r:u4);
break;
case 5:
u5=(u5==0?r:u5);
break;
case 6:
u6=(u6==0?r:u6);
break;
}
if(u1&&u2&&u3&&u4&&u5&&u6) break;
}
int ans=max(max(max(max(max(max(u6-f6,u5-f5),u4-f4),u3-f3),u2-f2),u1-f1),u0);
cout<<ans<<endl;
return 0;
}