|
- 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)
|