//暴力解法
#include<iostream> #include<string> #include<vector> using namespace std; int main(void) { int i, j, m, N, b, k; int index,maxSum=0; vector<int>a1; vector<int>a; cin >> N; m=N; while(m>0) { cin >> b; a1.push_back(b); m--; } cin >> k; for(i=0;i<N;++i) { int sum=0; index=0; for(j=i;j<N;++j) { sum += a1[j]; //好多重复的长度判断,如2个序列只需要一个相邻整除就可以;而且如果3个序列子串能够整除没必要访问2个子串 index++; if(sum%k==0) { a.push_back(index); //每次重复赋值,但只存储最大的长度 } } } for(i=0;i<a.size();i++) { if(a[i]> maxSum) maxSum = a[i]; } cout << maxSum << endl; getchar();getchar(); return 0; }