import sys input = sys.stdin.readline ############ ---- Input Functions ---- ############ def inp(): return(int(input())) def inlt(): return(list(map(int,input().split()))) n = inp() ciag = inlt() buc = [] for suma in range(1, len(ciag) + 1): for j in range(len(ciag) - suma + 1): buc.append(sum([ciag[k] for k in range(j, j+suma)])) ujemne = [i for i in buc if i < 0] dodatnie = [i for i in buc if i > 0] zera = [i for i in buc if i == 0] ile = int(len(zera) * (len(zera) - 1) * (len(zera) - 2) / 6) if len(zera) > 0: for i in ujemne: ile = ile + len(zera) * dodatnie.count(-i) pary_dodatnich = [] for i in range(len(dodatnie)): for j in range(i+1, len(dodatnie)): #print(dodatnie[i], dodatnie[j], dodatnie[i] + dodatnie[j]) pary_dodatnich.append(dodatnie[i] + dodatnie[j]) pary_ujemnych = [] for i in range(len(ujemne)): for j in range(i+1, len(ujemne)): #print(ujemne[i], ujemne[j], ujemne[i] + ujemne[j]) pary_ujemnych.append(ujemne[i] + ujemne[j]) for i in set(dodatnie): if -i in set(pary_ujemnych): ile = ile + dodatnie.count(i) * pary_ujemnych.count(-i) for i in set(ujemne): if -i in set(pary_dodatnich): ile = ile + ujemne.count(i) * pary_dodatnich.count(-i) print (ile)
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | import sys input = sys.stdin.readline ############ ---- Input Functions ---- ############ def inp(): return(int(input())) def inlt(): return(list(map(int,input().split()))) n = inp() ciag = inlt() buc = [] for suma in range(1, len(ciag) + 1): for j in range(len(ciag) - suma + 1): buc.append(sum([ciag[k] for k in range(j, j+suma)])) ujemne = [i for i in buc if i < 0] dodatnie = [i for i in buc if i > 0] zera = [i for i in buc if i == 0] ile = int(len(zera) * (len(zera) - 1) * (len(zera) - 2) / 6) if len(zera) > 0: for i in ujemne: ile = ile + len(zera) * dodatnie.count(-i) pary_dodatnich = [] for i in range(len(dodatnie)): for j in range(i+1, len(dodatnie)): #print(dodatnie[i], dodatnie[j], dodatnie[i] + dodatnie[j]) pary_dodatnich.append(dodatnie[i] + dodatnie[j]) pary_ujemnych = [] for i in range(len(ujemne)): for j in range(i+1, len(ujemne)): #print(ujemne[i], ujemne[j], ujemne[i] + ujemne[j]) pary_ujemnych.append(ujemne[i] + ujemne[j]) for i in set(dodatnie): if -i in set(pary_ujemnych): ile = ile + dodatnie.count(i) * pary_ujemnych.count(-i) for i in set(ujemne): if -i in set(pary_dodatnich): ile = ile + ujemne.count(i) * pary_dodatnich.count(-i) print (ile) |