#include <bits/stdc++.h>
using namespace std;
long long k,n,i,j,u,t,w,xp,xs,ax,ay;
int z,pp;
long long m,k1,k2,k3,k4;
vector<long long> x;
long long a[2000005];
long long b[2000005];
bool v[5000];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n;
w=0;
for(j=0;j<n;j++)
{cin >> a[j]; w+=a[j];}
for(i=1;i<=n;i++)
if(w%i==0) x.push_back(i);
//for(auto yy:x) cout << yy << ' ';
//cout << '\n';
for(j=0;j<x.size();j++) {
if(v[j]) continue;
m=x[j];
for(i=0;i<n;i++){
b[i]=a[i];
if(i>=m) b[i]+=b[i-m];
if((i>0 and b[i]<b[i-1]) or (i>n-m and b[i]>b[i-1]))
{
v[j]=1; //cout << j << '\n';
break;
}
}
if (v[j])
for(k=j+1;k<x.size();k++) {
if(x[k]%m==0) v[k]=1;
}
}
for(j=x.size()-1;v[j];j--);
cout << x[j] << '\n';
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include <bits/stdc++.h> using namespace std; long long k,n,i,j,u,t,w,xp,xs,ax,ay; int z,pp; long long m,k1,k2,k3,k4; vector<long long> x; long long a[2000005]; long long b[2000005]; bool v[5000]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; w=0; for(j=0;j<n;j++) {cin >> a[j]; w+=a[j];} for(i=1;i<=n;i++) if(w%i==0) x.push_back(i); //for(auto yy:x) cout << yy << ' '; //cout << '\n'; for(j=0;j<x.size();j++) { if(v[j]) continue; m=x[j]; for(i=0;i<n;i++){ b[i]=a[i]; if(i>=m) b[i]+=b[i-m]; if((i>0 and b[i]<b[i-1]) or (i>n-m and b[i]>b[i-1])) { v[j]=1; //cout << j << '\n'; break; } } if (v[j]) for(k=j+1;k<x.size();k++) { if(x[k]%m==0) v[k]=1; } } for(j=x.size()-1;v[j];j--); cout << x[j] << '\n'; } |
English