28 lines
697 B
Python
28 lines
697 B
Python
|
import sys
|
||
|
L = sys.stdin.read().splitlines()
|
||
|
seed = L[0]
|
||
|
L = L[2:]
|
||
|
L = [ l.split() for l in L ]
|
||
|
D = { tuple(k):v for [k,_,v] in L }
|
||
|
def reprpairs(P):
|
||
|
return " ".join(f"{a}{b}:{v}" for ((a,b),v) in P.items())
|
||
|
E = { K:0 for (K,_) in D.items() }
|
||
|
for (a,b) in zip(seed, seed[1:]):
|
||
|
E[(a,b)] += 1
|
||
|
#print(reprpairs(E))
|
||
|
for step in range(40):
|
||
|
F = { K:0 for (K,_) in D.items() }
|
||
|
for ((a,b),v) in E.items():
|
||
|
j = D[(a,b)]
|
||
|
F[(a,j)] += v
|
||
|
F[(j,b)] += v
|
||
|
E = F
|
||
|
#print(step+1,reprpairs(E))
|
||
|
from collections import defaultdict as dfd
|
||
|
S = dfd(int)
|
||
|
for ((a,b),v) in E.items():
|
||
|
S[a]+=v
|
||
|
S[b]+=v
|
||
|
S ={ k:(a+b) for (k,v) in S.items() for (a,b) in [divmod(v,2)] }
|
||
|
print(S, max(S.values())-min(S.values()))
|