import math
n = int(input())
outdeg = [0 for i in range(n + 1)]
to = [[] for i in range(n + 1)]
prod = 1
for i in range(1, n + 1):
line = input().split(' ')
outdeg[i] = int(line[0])
for j in range(1, outdeg[i] + 1):
to[i].append(int(line[j]))
if outdeg[i]:
prod *= outdeg[i]
g = prod
dp = [0 for i in range(n + 1)]
dp[1] = prod
for i in range(1, n + 1):
if outdeg[i] != 0:
go = dp[i] // outdeg[i]
g = math.gcd(g, go)
for nei in to[i]:
dp[nei] += go
#print(dp)
print(prod // g)
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 | import math n = int(input()) outdeg = [0 for i in range(n + 1)] to = [[] for i in range(n + 1)] prod = 1 for i in range(1, n + 1): line = input().split(' ') outdeg[i] = int(line[0]) for j in range(1, outdeg[i] + 1): to[i].append(int(line[j])) if outdeg[i]: prod *= outdeg[i] g = prod dp = [0 for i in range(n + 1)] dp[1] = prod for i in range(1, n + 1): if outdeg[i] != 0: go = dp[i] // outdeg[i] g = math.gcd(g, go) for nei in to[i]: dp[nei] += go #print(dp) print(prod // g) |
English