# -*- 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() |
English