n = int(input())
lista = list(map(int, input().split()))
suma = sum(lista)
def sprawdz(k):
konce = [0] * (n + k + 1)
aktywne = 0
for i in range(n):
aktywne -= konce[i]
potrzeba = lista[i] - aktywne
if potrzeba < 0:
return False
if potrzeba > 0:
if i + k > n:
return False
aktywne += potrzeba
konce[i + k] = potrzeba
return aktywne == konce[n]
dzielniki = set()
for i in range(1, int(suma**0.5) + 1):
if suma % i == 0:
if i <= n:
dzielniki.add(i)
if suma // i <= n:
dzielniki.add(suma // i)
for k in sorted(dzielniki)[::-1]:
if sprawdz(k):
print(k)
break
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 | n = int(input()) lista = list(map(int, input().split())) suma = sum(lista) def sprawdz(k): konce = [0] * (n + k + 1) aktywne = 0 for i in range(n): aktywne -= konce[i] potrzeba = lista[i] - aktywne if potrzeba < 0: return False if potrzeba > 0: if i + k > n: return False aktywne += potrzeba konce[i + k] = potrzeba return aktywne == konce[n] dzielniki = set() for i in range(1, int(suma**0.5) + 1): if suma % i == 0: if i <= n: dzielniki.add(i) if suma // i <= n: dzielniki.add(suma // i) for k in sorted(dzielniki)[::-1]: if sprawdz(k): print(k) break |
English