def part2(): with open(get_input_name(14, 2019)) as fobj: fuel_produced = calculate_fuel(fobj) print("With {} ORE you could produce {} fuel".format(TRILLION, fuel_produced))
def load(with_diagonal): with open(get_input_name(5, 2021)) as fobj: return list(_load_input(fobj, with_diagonal))
def load(): with open(get_input_name(7, 2020)) as fobj: return fobj.read().splitlines(keepends=False)
def part1(): with open(get_input_name(14, 2019)) as fobj: ore_needed = calculate_ore(fobj) print("You need {} units of ORE".format(ore_needed))
def load(): with open(get_input_name(3, 2020)) as fobj: return Board.from_string(fobj.read())
def load(): passes = [] with open(get_input_name(5, 2020)) as fobj: for line in fobj: passes.append(BoardingPass(line.strip())) return passes
def load(): with open(get_input_name(8, 2020)) as fobj: return fobj.readlines()
def part1(): with open(get_input_name(6, 2019)) as fobj: total_orbits = calculate_orbits(fobj) print("Total orbits: {}".format(total_orbits))
def load(): with open(get_input_name(23, 2020)) as fobj: return fobj.read().strip()
def load(): with open(get_input_name(3, 2021)) as fobj: return Board.from_string(fobj.read(), fill_value=0, dtype=np.int_)
def load(): with open(get_input_name(4, 2021)) as fobj: return _load_input(fobj.read())
def load(): with open(get_input_name(9, 2020)) as fobj: return [int(l) for l in fobj]
def part2(): with open(get_input_name(6, 2019)) as fobj: planets = load_planets(fobj) transfers = calculate_transfers(planets) print("Transfers: {}".format(transfers))
def load(): with open(get_input_name(25, 2020)) as fobj: return [int(l.strip()) for l in fobj]
def load_program(day): fpath = get_input_name(day, 2019) with open(fpath) as fobj: data = fobj.read().strip() program = [int(i) for i in data.split(",")] return program
state = State.unpack(state_key) new_state = inst(state) inputs = states[state_key].inputs if new_state.pack() in states: old_max = states.get(new_state.pack(), BLANK_RESULT).inputs states[new_state.pack()] = Result(generation, max(inputs, old_max)) else: new_states[new_state.pack()] = Result(generation, inputs) states = {k: v for k, v in states.items() if v.generation == generation} states.update(new_states) print(f"Searching {len(states)} states for best result") return max(states[s].inputs for s in states if State.unpack(s).z == 0) def part1(program): program = list(program) return run_program(program) def part2(program): return None if __name__ == "__main__": with open(get_input_name(24, 2021)) as fobj: p1_result = part1(load(fobj)) print(f"Part 1: {p1_result}") with open(get_input_name(24, 2021)) as fobj: p2_result = part2(load(fobj)) print(f"Part 2: {p2_result}")
def load(): with open(get_input_name(21, 2020)) as fobj: lines = fobj.readlines() all2ing, counts, ing2all, recipies = load_lines(lines) return all2ing, counts, ing2all, recipies