from output import answer from output.intcode_computer import execute, parse n = 9 title = "Sensor Boost" @answer(1, "[intcode 0.3.1] BOOST keycode: {}") def part_1(o): return o[0] @answer(2, "[intcode 0.3.1] Distress signal coordinates: {}") def part_2(o): return o[1] def solve(data): program = parse(data) p12 = [] for inp in [1, 2]: _c, _s, _n, _rb, outputs = execute(program, stdin=[inp]) p12.append(outputs.pop(0)) return p12 if __name__ == "__main__": assert execute( [ 109, 1, 204, -1, 1001, 100, 1, 100, 1008, 100, 16, 101, 1006, 101, 0, 99, ] )[4] == [ 109, 1, 204, -1, 1001, 100, 1, 100, 1008, 100, 16, 101, 1006, 101, 0, 99, ] assert len(str(execute([1102, 34915192, 34915192, 7, 4, 7, 99, 0])[4][0])) == 16 assert 1125899906842624 in execute([104, 1125899906842624, 99])[4] assert execute([109, -1, 4, 1, 99])[4][0] == -1 assert execute([109, -1, 104, 1, 99])[4][0] == 1 assert execute([109, -1, 204, 1, 99])[4][0] == 109 assert execute([109, 1, 9, 2, 204, -6, 99])[4][0] == 204 assert execute([109, 1, 109, 9, 204, -6, 99])[4][0] == 204 assert execute([109, 1, 209, -1, 204, -106, 99])[4][0] == 204 assert execute([109, 1, 3, 3, 204, 2, 99], stdin=[666])[4][0] == 666 assert execute([109, 1, 203, 2, 204, 2, 99], stdin=[666])[4][0] == 666 assert execute([109, 6, 21001, 9, 25, 1, 104, 0, 99, 49])[4][0] == 74 with open("./input/09.txt", "r") as f: inp = f.read().strip() inp = solve(inp) a = part_1(inp) b = part_2(inp) assert a == 2351176124 assert b == 73110