Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

25 linhas
526B

  1. import collections
  2. import itertools
  3. import sys
  4. text = sys.stdin.read()
  5. inp = [int(n) for n in text.split(',')][::-1]
  6. seen = collections.defaultdict(lambda: collections.deque(maxlen=2))
  7. spoken = None
  8. for turn in itertools.count(1):
  9. if inp:
  10. spoken = inp.pop()
  11. elif len(seen[spoken]) < 2:
  12. spoken = 0
  13. else:
  14. spoken = seen[spoken][-1] - seen[spoken][-2]
  15. if turn == 2020:
  16. print(spoken)
  17. elif turn == 30_000_000:
  18. print(spoken)
  19. break
  20. seen[spoken].append(turn)