import math n = int(input()) D = [] P = [] V = [] for i in range(0,n,1): D.append([]) P.append([]) V.append(0) for i in range(0,n,1): s = input().split(" ") r = int(s[0]) for j in range(0,r,1): D[i].append(int(s[j+1])-1) P[D[i][j]].append(i) V[0] = 1 for i in range(0,n,1): if len(D[i]) == 0 : continue for p in P[i]: V[i] += V[p]//len(D[p]) if V[i]==0: continue pom = int(len(D[i])/math.gcd(V[i],len(D[i]))) V[0] = V[0] * pom for j in range(1,i+1,1): V[j] = 0 for p in P[j]: V[j] += V[p]//len(D[p]) print(V[0])
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 | import math n = int(input()) D = [] P = [] V = [] for i in range(0,n,1): D.append([]) P.append([]) V.append(0) for i in range(0,n,1): s = input().split(" ") r = int(s[0]) for j in range(0,r,1): D[i].append(int(s[j+1])-1) P[D[i][j]].append(i) V[0] = 1 for i in range(0,n,1): if len(D[i]) == 0 : continue for p in P[i]: V[i] += V[p]//len(D[p]) if V[i]==0: continue pom = int(len(D[i])/math.gcd(V[i],len(D[i]))) V[0] = V[0] * pom for j in range(1,i+1,1): V[j] = 0 for p in P[j]: V[j] += V[p]//len(D[p]) print(V[0]) |