from collections import Counter from utils import open_day import numpy as np fish = Counter(map(int, open_day(6).read().split(','))) fish = np.array([fish[i] for i in range(9)]) mat = np.array([ [0, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0] ]) print(sum(np.matmul(fish, np.linalg.matrix_power(mat, 80)))) print(sum(np.matmul(fish, np.linalg.matrix_power(mat, 256))))