blob: 6a0a74ffe8d2bb887c17474e72d74c4f2361fb9e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import numpy as np
data = [
(i, int(dat))
for i, dat in enumerate(open("input").readlines())
if dat != ""
]
size = len(data)
def solve(arr, mult):
for coord in arr[:] * mult:
i = arr.index(coord)
arr.pop(i)
arr.insert((i + coord[1]) % (size - 1), coord)
zero = [coord[1] for coord in arr].index(0)
locs = [1000, 2000, 3000]
return sum(arr[(zero + p) % size][1] for p in locs)
def part1():
copied = data[:] # don't overwrite because part2
return solve(copied, 1)
def part2():
applied = [(i, dat * 811589153) for i, dat in data]
return solve(applied, 10)
print(f"Part 1: {part1()}")
print(f"Part 2: {part2()}")
|