|
- from collections import deque
-
-
- def run(src, cycles=1, factor=1):
- els = deque([(i, int(n) * factor) for i, n in enumerate(src)])
- zero, = [el for el in els if el[1] == 0]
- order = list(els)
- for _ in range(cycles):
- for el in order:
- idx = els.index(el)
- els.rotate(-idx)
- els.popleft()
- els.rotate(-el[1])
- els.appendleft(el)
- idx = els.index(zero)
- els.rotate(-idx)
- return sum(els[n % len(els)][1] for n in [1000, 2000, 3000])
-
-
- els = open(0).read().splitlines()
- print(run(els))
- print(run(els, cycles=10, factor=811589153))
|