#1444. 完善练习1
完善练习1
完善1:
给你n个数,分别是a[1],a[2],...,a[n]。求一个最长的区间[x,y],使得区间中的数(a[x],a[x+1],a[x+2],...,a[y-1],a[y])的和能被7整除。输出区间长度。若没有符合要求的区间,输出0。
#include <bits/stdc++.h>
using namespace std;
int book[7];
int a[55000],sum[55000];
int main(){
memset(book,-1,sizeof book);
book[0]=(1)______;
int n;
cin>>n;
int ans=0;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
(2)______;
}
for(int i=1;i<=n;i++){
sum[i]%=7;
}
for(int i=1;i<=n;i++){
if((3)______){
book[(4)______]=i;
}
else ans=max(ans,(5)______);
}
cout<<ans<<endl;
return 0;
}
- 1处应填( ){{ select(1) }}
- 0
- 1
- 2
- 7
- 2处应填( ){{ select(2) }}
- sum[i]=a[i]
- sum[i]=a[i]+a[i-1]
- sum[i]+=a[i]
- sum[i]=sum[i-1]+a[i]
- 3处应填( ){{ select(3) }}
- book[sum[i]]==-1
- book[i]==-1
- book[sum[i]]!=-1
- book[i]!=-1
- 4处应填( ){{ select(4) }}
- i
- sum[i]
- a[i]
- sum[i]+a[i]
- 5处应填( ){{ select(5) }}
- sum[i]
- book[sum[i]]
- i-sum[i]
- i-book[sum[i]]
相关
在以下作业中: