#no dobrze, napisałem w pythonie, niech wam będzie import sys import math def lcm(a,b): return a // math.gcd(a,b) * b n = int(input()) l = [0] * n m = [1] * n l[0] = 1 res = 1 for i in range(n): arr = list(map(int,input().split())) if arr[0] != 0 and l[i] != 0 : cd = math.gcd(arr[0], l[i]) l[i] = l[i] // cd m[i] *= arr[0] // cd res = lcm(res, m[i]) for el in arr[1:]: el-=1 nm = lcm(m[i], m[el]) l[el] *= nm // m[el] m[el] = nm; l[el] += l[i] * (nm // m[i]) cd = math.gcd(l[el],m[el]) l[el] = l[el] // cd m[el] = m[el] // cd print(res);
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 | #no dobrze, napisałem w pythonie, niech wam będzie import sys import math def lcm(a,b): return a // math.gcd(a,b) * b n = int(input()) l = [0] * n m = [1] * n l[0] = 1 res = 1 for i in range(n): arr = list(map(int,input().split())) if arr[0] != 0 and l[i] != 0 : cd = math.gcd(arr[0], l[i]) l[i] = l[i] // cd m[i] *= arr[0] // cd res = lcm(res, m[i]) for el in arr[1:]: el-=1 nm = lcm(m[i], m[el]) l[el] *= nm // m[el] m[el] = nm; l[el] += l[i] * (nm // m[i]) cd = math.gcd(l[el],m[el]) l[el] = l[el] // cd m[el] = m[el] // cd print(res); |