from lib import get_data, str_to_ints def part_1(data): xs = str_to_ints(data) xs[1] = 12 xs[2] = 2 for i in range(0, len(xs), 4): match xs[i]: case 1: xs[xs[i + 3]] = xs[xs[i + 1]] + xs[xs[i + 2]] case 2: xs[xs[i + 3]] = xs[xs[i + 1]] * xs[xs[i + 2]] print(xs[0]) def part_2(data): for noun in range(1, 101): for verb in range(1, 101): xs = str_to_ints(data) xs[1] = noun xs[2] = verb for i in range(0, len(xs), 4): match xs[i]: case 1: xs[xs[i + 3]] = xs[xs[i + 1]] + xs[xs[i + 2]] case 2: xs[xs[i + 3]] = xs[xs[i + 1]] * xs[xs[i + 2]] if xs[0] == 19690720: print(100 * noun + verb) return def main(): data = get_data(__file__) part_1(data) part_2(data) if __name__ == "__main__": main()