#!/usr/bin/env python3 from collections import defaultdict lines = (x.strip() for x in open("input.txt")) nums = defaultdict(list) TARGET = 30000000 for line in lines: print(line) 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] if len(last) == 2: n = last[1] - last[0] else: n = 0 nums[n] = nums[n][-1:] + [t] last_spoken = n print("->", last_spoken)