Esempio n. 1
0
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))
Esempio n. 2
0
def load(with_diagonal):
    with open(get_input_name(5, 2021)) as fobj:
        return list(_load_input(fobj, with_diagonal))
Esempio n. 3
0
def load():
    with open(get_input_name(7, 2020)) as fobj:
        return fobj.read().splitlines(keepends=False)
Esempio n. 4
0
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))
Esempio n. 5
0
def load():
    with open(get_input_name(3, 2020)) as fobj:
        return Board.from_string(fobj.read())
Esempio n. 6
0
def load():
    passes = []
    with open(get_input_name(5, 2020)) as fobj:
        for line in fobj:
            passes.append(BoardingPass(line.strip()))
    return passes
Esempio n. 7
0
def load():
    with open(get_input_name(8, 2020)) as fobj:
        return fobj.readlines()
Esempio n. 8
0
def part1():
    with open(get_input_name(6, 2019)) as fobj:
        total_orbits = calculate_orbits(fobj)
        print("Total orbits: {}".format(total_orbits))
Esempio n. 9
0
def load():
    with open(get_input_name(23, 2020)) as fobj:
        return fobj.read().strip()
Esempio n. 10
0
def load():
    with open(get_input_name(3, 2021)) as fobj:
        return Board.from_string(fobj.read(), fill_value=0, dtype=np.int_)
Esempio n. 11
0
def load():
    with open(get_input_name(4, 2021)) as fobj:
        return _load_input(fobj.read())
Esempio n. 12
0
def load():
    with open(get_input_name(9, 2020)) as fobj:
        return [int(l) for l in fobj]
Esempio n. 13
0
def part2():
    with open(get_input_name(6, 2019)) as fobj:
        planets = load_planets(fobj)
        transfers = calculate_transfers(planets)
        print("Transfers: {}".format(transfers))
Esempio n. 14
0
def load():
    with open(get_input_name(25, 2020)) as fobj:
        return [int(l.strip()) for l in fobj]
Esempio n. 15
0
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
Esempio n. 16
0
                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}")
Esempio n. 17
0
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