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
import sys

def solve():
    data = sys.stdin.read().split()
    if not data: return
    
    n = int(data[0])
    A = [0] + list(map(int, data[1:n+1])) + [0]
    D = [0] + [A[i] - A[i-1] for i in range(1, n+2)]
    
    for k in range(n, 0, -1):
        ok = True
        for i in range(1, k + 1):
            s = 0
            for j in range(i, n + 2, k):
                s += D[j]
                if s < 0:
                    ok = False
                    break
            if s != 0:
                ok = False
            if not ok:
                break
        if ok:
            print(k)
            break

solve()