| 1234567891011121314151617181920212223 |
- #!/usr/bin/env python3
- from collections import deque
- def steal_left(n):
- elves = deque(range(1, n + 1))
- while len(elves) > 1:
- elves.rotate(-1)
- elves.popleft()
- return elves.pop()
- def steal_opposite(n):
- elves = deque(range(1, n + 1))
- elves.rotate(-(len(elves) // 2))
- skip = len(elves) % 2
- while len(elves) > 1:
- elves.popleft()
- elves.rotate(-skip)
- skip = 1 - skip
- return elves.pop()
- n = 3017957
- print(steal_left(n))
- print(steal_opposite(n))
|