23 lines
564 B
Python
23 lines
564 B
Python
#!/usr/bin/env python3
|
|
|
|
from collections import defaultdict
|
|
|
|
lines = (x.strip() for x in open("input.txt"))
|
|
TARGET = 30000000
|
|
|
|
for line in lines:
|
|
print(line)
|
|
nums = defaultdict(list)
|
|
turn = 0
|
|
last_spoken = 0
|
|
for starting in map(int, line.split(",")):
|
|
nums[starting] = [turn]
|
|
turn += 1
|
|
last_spoken = starting
|
|
for t in range(turn, TARGET):
|
|
last = nums[last_spoken]
|
|
n = last[1] - last[0] if len(last) == 2 else 0
|
|
nums[n] = nums[n][-1:] + [t]
|
|
last_spoken = n
|
|
print("->", last_spoken)
|