#define start ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define ll long long #define LL long long #define pii pair<int,int> #define int ll usingnamespace std; constint maxn = (ll) 1e5 + 5; constint mod = 1000000007; constint inf = 0x3f3f3f3f3f3f3f3f; int a[maxn]; int cnt = 0; int sum[maxn]; int num[maxn];
signedmain(){ start; int n; cin >> n; for (int i = 1; i <= n; ++i) { int x; cin >> x; num[i] = num[i - 1] + x;//前缀数量 if (x) { a[++cnt] = i; sum[i] = i; } } for (int i = 1; i <= n; ++i)//前缀坐标和 sum[i] += sum[i - 1]; int ans = inf; for (int i = 2; i <= cnt; ++i) { if (cnt % i == 0) { int tmp = 0; for (int k = i; k <= cnt; k += i) {//k为最后的糖果 int first = a[k - i + 1]; int last = a[k]; int ave = a[k - i / 2]; int num1 = num[ave] - num[first - 1]; int num2 = num[last] - num[ave]; int tot1 = sum[ave] - sum[first - 1]; int tot2 = sum[last] - sum[ave]; int t = num1 * ave - tot1 + tot2 - num2 * ave; tmp += t; } ans = min(ans, tmp); } } if (ans == inf) cout << -1; else cout << ans; return0; }