Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

21 lines
714B

  1. A, *B = open(0).read().split('\n\n')
  2. calls = [int(n) for n in A.split(',')]
  3. boards = [[[int(n) for n in ln.split()] for ln in b.splitlines()] for b in B]
  4. win_scores = []
  5. for n in calls:
  6. pending = []
  7. for board in boards:
  8. board[:] = [[None if m == n else m for m in row] for row in board]
  9. win_rows = any(all(n is None for n in row) for row in board)
  10. win_cols = any(all(n is None for n in col) for col in zip(*board))
  11. if win_cols or win_rows:
  12. total = sum(sum(n for n in row if n is not None) for row in board)
  13. win_scores.append(total * n)
  14. else:
  15. pending.append(board)
  16. boards = pending
  17. print(win_scores[0])
  18. print(win_scores[-1])