| import collections | |||||
| import itertools | |||||
| import sys | |||||
| text = sys.stdin.read() | |||||
| inp = [int(n) for n in text.split(',')][::-1] | |||||
| seen = collections.defaultdict(lambda: collections.deque(maxlen=2)) | |||||
| spoken = None | |||||
| for turn in itertools.count(1): | |||||
| if inp: | |||||
| spoken = inp.pop() | |||||
| elif len(seen[spoken]) < 2: | |||||
| spoken = 0 | |||||
| else: | |||||
| spoken = seen[spoken][-1] - seen[spoken][-2] | |||||
| if turn == 2020: | |||||
| print(spoken) | |||||
| elif turn == 30_000_000: | |||||
| print(spoken) | |||||
| break | |||||
| seen[spoken].append(turn) |