33 lines
948 B
Python
33 lines
948 B
Python
#!/usr/bin/env python3
|
|
from collections import defaultdict
|
|
|
|
lines = [x.strip() for x in open("input.txt")]
|
|
inp = map(int, lines[0].split(","))
|
|
boards = defaultdict(list)
|
|
remaining = defaultdict(set)
|
|
|
|
for i in range((len(lines)-1) // 6):
|
|
sub = list(map(lambda x: list(map(int, x.split())), lines[i*6+2:i*6+7]))
|
|
for j in range(5):
|
|
boards[i].append(set(sub[j]))
|
|
boards[i].append(set([row[j] for row in sub]))
|
|
board_items = set()
|
|
for row in sub:
|
|
board_items.update(row)
|
|
remaining[i] = board_items
|
|
|
|
wins = set()
|
|
for draw in inp:
|
|
for key, board in boards.items():
|
|
if key in wins:
|
|
continue
|
|
remaining[key].discard(draw)
|
|
for line in board:
|
|
line.discard(draw)
|
|
if len(line) == 0:
|
|
wins.add(key)
|
|
if len(wins) == 100:
|
|
print(draw * sum(remaining[key]))
|
|
exit(0)
|
|
break
|