def oblicz_sumy_podciagow(a, n):
sumy = []
for i in range(n):
suma = 0
for j in range(i, n):
suma += a[j]
sumy.append(suma)
return sorted(sumy)
def znajdz_trojki_sumujace_do_zera(sumy):
licznik = 0
n = len(sumy)
for i in range(n):
j, k = i + 1, n - 1
while j < k:
suma = sumy[i] + sumy[j] + sumy[k]
if suma == 0:
licznik += 1
j += 1
k -= 1
elif suma < 0:
j += 1
else:
k -= 1
return licznik
n = int(input())
a = list(map(int, input().split()))
sumy = oblicz_sumy_podciagow(a, n)
wynik = znajdz_trojki_sumujace_do_zera(sumy)
print(wynik)
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 | def oblicz_sumy_podciagow(a, n): sumy = [] for i in range(n): suma = 0 for j in range(i, n): suma += a[j] sumy.append(suma) return sorted(sumy) def znajdz_trojki_sumujace_do_zera(sumy): licznik = 0 n = len(sumy) for i in range(n): j, k = i + 1, n - 1 while j < k: suma = sumy[i] + sumy[j] + sumy[k] if suma == 0: licznik += 1 j += 1 k -= 1 elif suma < 0: j += 1 else: k -= 1 return licznik n = int(input()) a = list(map(int, input().split())) sumy = oblicz_sumy_podciagow(a, n) wynik = znajdz_trojki_sumujace_do_zera(sumy) print(wynik) |
English