Watch
1
0
Fork
You've already forked advent-of-code
0

2017 Day 10 Part 1

This commit is contained in:
Jeremy Kaplan 2026-07-31 13:00:03 -04:00
commit 63a14f13f9

31
2017/day10.py Normal file
View file

@ -0,0 +1,31 @@
with open("input/day10.txt") as f:
size, input = 256, f.read().strip()
lengths = [int(i) for i in input.split(",")]
ring = list(range(size))
pos = 0
skip = 0
for length in lengths:
assert length <= len(ring), "overlap undefined"
tail = min(length, len(ring) - pos)
head = max(length - tail, 0)
a = pos + tail
b = 0 + head
prefix = ring[b:pos]
inside = ring[pos:a] + ring[:b]
suffix = ring[a:]
assert length == len(inside)
twisted = inside[::-1]
ring = twisted[tail:] + prefix + twisted[:tail] + suffix
pos = (pos + length + skip) % len(ring)
skip += 1
print(ring[0] * ring[1])