Taddeus Kroes 7 år sedan
förälder
incheckning
bfc2c4ed41
2 ändrade filer med 24 tillägg och 0 borttagningar
  1. 23 0
      09_marbles.py
  2. 1 0
      input/9

+ 23 - 0
09_marbles.py

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

+ 1 - 0
input/9

@@ -0,0 +1 @@
+470 players; last marble is worth 72170 points