#!/usr/bin/env python3.11 import re maximums = {"red": 12, "green": 13, "blue": 14} def game_turn(game_id: int, data: str) -> int: local_maximums = {"red": 0, "green": 0, "blue": 0} sets = data.split("; ") for dset in sets: cubes = dset.split(", ") for cube in cubes: print(cube.split(" ")) number, color = cube.split(" ") number = int(number) local_maximums[color] = max(local_maximums[color], number) return local_maximums["red"] * local_maximums["green"] * local_maximums["blue"] id_sum = 0 with open("input.txt", "r") as input: while line := input.readline(): match = re.match("Game (\d+): (.*)", line) id_sum += game_turn(int(match.groups(0)[0]), match.groups(0)[1]) print(id_sum)