aoc2021/d14/d14_1.py

23 lines
585 B
Python
Raw Normal View History

2022-01-02 22:35:19 +00:00
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 }
print(seed, D)
for step in range(10):
C = ["X"] # X is their to avoid empty list when comparing to previous char
for (a,b) in zip(seed, seed[1:]):
if a != C[-1]:
C.append(a)
if (a,b) in D:
C.append(D[(a,b)])
C.append(b)
seed = "".join(C)
print(step+1, len(seed), seed[1:])
from collections import Counter
C = Counter(seed)
del C["X"]
print(C, C.values(), max(C.values())-min(C.values()))
# store 40 iterations will be 20*2^39~=21TB ...