summaryrefslogtreecommitdiffstats
path: root/6np.py
blob: 92273b17f4dc7c2cdb6ca672ceb91bc667d0a2a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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))))