Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

23 lines
646B

  1. import sys
  2. def shuffle(text, L, P):
  3. cards = list(range(L))
  4. for line in text.splitlines():
  5. inst, n = line.rsplit(' ', 1)
  6. if inst == 'deal with increment':
  7. n = int(n)
  8. invmod = pow(n, -1, L) # pow(n, L - 2, L)
  9. source = lambda i: i * invmod % L # noqa
  10. elif inst == 'cut':
  11. n = int(n)
  12. source = lambda i: (i + n) % L # noqa
  13. elif inst == 'deal into new':
  14. source = lambda i: (L - 1 - i) % L # noqa
  15. cards = [cards[source(i)] for i in range(L)]
  16. return cards.index(P)
  17. text = sys.stdin.read()
  18. print(shuffle(text, 10007, 2019))