|
|
@@ -1,16 +1,15 @@
|
|
|
#!/usr/bin/env python3
|
|
|
import sys
|
|
|
from collections import deque
|
|
|
-from itertools import cycle
|
|
|
|
|
|
-def play(nplayers, last):
|
|
|
+def play(nplayers, nmarbles):
|
|
|
scores = [0] * nplayers
|
|
|
circle = deque([0])
|
|
|
|
|
|
- for marble, player in zip(range(1, last + 1), cycle(range(nplayers))):
|
|
|
+ for marble in range(1, nmarbles + 1):
|
|
|
if marble % 23 == 0:
|
|
|
circle.rotate(7)
|
|
|
- scores[player] += marble + circle.pop()
|
|
|
+ scores[marble % nplayers] += marble + circle.pop()
|
|
|
circle.rotate(-1)
|
|
|
else:
|
|
|
circle.rotate(-1)
|
|
|
@@ -18,6 +17,6 @@ def play(nplayers, last):
|
|
|
|
|
|
return max(scores)
|
|
|
|
|
|
-nplayers, lastmarble = map(int, sys.stdin.readline().split()[::6])
|
|
|
-print(play(nplayers, lastmarble))
|
|
|
-print(play(nplayers, lastmarble * 100))
|
|
|
+nplayers, nmarbles = map(int, sys.stdin.readline().split()[::6])
|
|
|
+print(play(nplayers, nmarbles))
|
|
|
+print(play(nplayers, nmarbles * 100))
|