signedmain() { int n;cin>>n; vector<int> a(n+1); int res = 0; int sum = 0; for(int i = 1;i <= n;i++) cin >> a[i],sum += a[i]; if(sum == 1) puts("-1"); else{ vector<int> d; int v = sum; for(int i = 2;i <= v/i;i++){ if(v % i == 0){ d.push_back(i); while(v % i == 0) v /= i; } } if(v > 1) d.push_back(v); int res = inf; for(auto p:d){ int pre = 0; int now = 0; for(int i = 1;i <= n;i++){ pre += a[i]; if(pre % p){ now += min(pre%p,p - pre%p); } } res = min(res,now); } cout << res << endl; } return0; }