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()
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() |
English