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
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n; cin >> n;
    vector<int> a(n);
    for (auto &i : a) cin >> i;

    long long sum = accumulate(a.begin(), a.end(), 0ll);
    for (int i = n; i > 0; i--) {
        if (sum % i == 0) {
            // cout << "CHECKING " << i << endl;
            vector<int> add(n + 1);
            int cum = 0;
            bool bad = false;
            for (int j = 0; j < n; j++) {
                cum += add[j];
                int rest = a[j] - cum;
                if (rest < 0 || (rest > 0 && j + i > n)) {
                    bad = true;
                    break;
                }
                cum += rest;
                if (rest)
                    add[j + i] -= rest;
            }
            if (!bad) {
                cout << i << "\n";
                return 0;
            }
        }
    }
}