22 lines
507 B
Python
22 lines
507 B
Python
|
from collections import defaultdict, deque
|
||
|
|
||
|
|
||
|
def day9(players, last):
|
||
|
marbles = deque([0])
|
||
|
player = 1
|
||
|
scores = defaultdict(lambda: 0)
|
||
|
for m in range(1, last+1):
|
||
|
if m % 23 == 0:
|
||
|
marbles.rotate(7)
|
||
|
scores[player] += m + marbles.pop()
|
||
|
marbles.rotate(-1)
|
||
|
else:
|
||
|
marbles.rotate(-1)
|
||
|
marbles.append(m)
|
||
|
player = (player + 1) % players
|
||
|
print(max(scores.values()))
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
day9(404, 71852)
|