# -*- coding: utf-8 -*- """ Created on Sat Dec 17 21:41:18 2022 @author: Ania """ def gcd(a,b): if b<a: a,b = b,a while a>0: b = b%a if b<a: a,b = b,a return b def main_fun(): n = int(input()) wejscie = [int(0) for ii in range(n+1)] wyjscia = [[] for ii in range(n+1)] for ii in range(1, n+1): line = [int(x) for x in input().rstrip().split(' ')] wyjscia[ii] = line[1:] # bez pierwszej cyfry if len(wyjscia[1])==0: print(1) return cykl = len(wyjscia[1]) wejscie[1] = cykl for ii in range(1, n+1): inn, out = wejscie[ii], len(wyjscia[ii]) if inn!=0 and out!=0: nww = inn*(out//gcd(inn, out)) if nww!=inn: cykl *= (nww//inn); for jj in range(1, n+1): wejscie[jj] *= (nww//inn); for kk in range(out): wejscie[wyjscia[ii][kk]] += (nww//out); print((cykl)) main_fun()
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 | # -*- coding: utf-8 -*- """ Created on Sat Dec 17 21:41:18 2022 @author: Ania """ def gcd(a,b): if b<a: a,b = b,a while a>0: b = b%a if b<a: a,b = b,a return b def main_fun(): n = int(input()) wejscie = [int(0) for ii in range(n+1)] wyjscia = [[] for ii in range(n+1)] for ii in range(1, n+1): line = [int(x) for x in input().rstrip().split(' ')] wyjscia[ii] = line[1:] # bez pierwszej cyfry if len(wyjscia[1])==0: print(1) return cykl = len(wyjscia[1]) wejscie[1] = cykl for ii in range(1, n+1): inn, out = wejscie[ii], len(wyjscia[ii]) if inn!=0 and out!=0: nww = inn*(out//gcd(inn, out)) if nww!=inn: cykl *= (nww//inn); for jj in range(1, n+1): wejscie[jj] *= (nww//inn); for kk in range(out): wejscie[wyjscia[ii][kk]] += (nww//out); print((cykl)) main_fun() |