from collections import defaultdict with open("input") as f: puzzle_input = [n.strip() for n in f.readlines()] lights = [[0 for _ in range(1000)] for _ in range(1000)] for instruction in puzzle_input: from_coords = instruction.split(" ")[-1::-1][2] to_coords = instruction.split(" ")[-1::-1][0] from_coords = [int(x) for x in from_coords.split(",")] to_coords = [int(x) for x in to_coords.split(",")] [x_1, y_1] = from_coords [x_2, y_2] = to_coords diff = 0 if instruction.startswith("turn on"): diff = 1 elif instruction.startswith("turn off"): diff = -1 else: diff = 2 for x in range(x_1, x_2 + 1): for y in range(y_1, y_2 + 1): lights[x][y] = lights[x][y] + diff if lights[x][y] < 0: lights[x][y] = 0 print(instruction, from_coords, to_coords) brightness = 0 for row in lights: for light in row: brightness += light print(brightness)