diff options
Diffstat (limited to '22.8/main.py')
-rw-r--r-- | 22.8/main.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/22.8/main.py b/22.8/main.py index 624b890..78e67e4 100644 --- a/22.8/main.py +++ b/22.8/main.py @@ -4,7 +4,7 @@ def rot(a): return [list(t) for t in zip(*a[::-1])] def flatten(a): - return sum(vis, []) + return sum(a, []) grid = [[int(c) for c in line.strip()] for line in stdin] vis = [[0 for _ in a] for a in grid] @@ -20,3 +20,16 @@ for _ in range(4): vis = rot(vis) print(len([c for c in flatten(vis) if c > 0])) + +scores = [[1 for _ in a] for a in grid] +for _ in range(4): + for trees, to in zip(grid, scores): + lastBlock = [0] * 10 + for i in range(len(trees)): + h = trees[i] + to[i] *= i - lastBlock[h] + for j in range(h + 1): + lastBlock[j] = i + grid = rot(grid) + scores = rot(scores) +print(max(flatten(scores))) |