20_decrypt.py 529 B

1234567891011121314151617
  1. #!/usr/bin/env python3
  2. import sys
  3. from collections import deque
  4. def mix(numbers, times):
  5. buf = deque(range(len(numbers)))
  6. for _ in range(times):
  7. for i in range(len(buf)):
  8. buf.rotate(-buf.index(i))
  9. buf.rotate(-numbers[buf.popleft()])
  10. buf.appendleft(i)
  11. buf.rotate(-buf.index(numbers.index(0)))
  12. return sum(numbers[buf[i % len(buf)]] for i in (1000, 2000, 3000))
  13. numbers = list(map(int, sys.stdin))
  14. print(mix(numbers, 1))
  15. print(mix([n * 811589153 for n in numbers], 10))