advent24-llm / day13 /solution_gpt-4o.py
jerpint's picture
Add solution files
a4da721
def parse_input(file):
machines = []
with open(file, 'r') as f:
lines = f.readlines()
for i in range(0, len(lines), 3):
a_x, a_y = map(int, lines[i].strip().split()[2::2])
b_x, b_y = map(int, lines[i+1].strip().split()[2::2])
p_x, p_y = map(int, lines[i+2].strip().split()[1::2])
machines.append(((a_x, a_y), (b_x, b_y), (p_x, p_y)))
return machines
def min_tokens_to_win(machines, prize_offset=0):
min_tokens = float('inf')
max_prizes = 0
for a_x, a_y, b_x, b_y, p_x, p_y in machines:
p_x += prize_offset
p_y += prize_offset
found_solution = False
for a in range(101):
for b in range(101):
if a * a_x + b * b_x == p_x and a * a_y + b * b_y == p_y:
tokens = 3 * a + b
if tokens < min_tokens:
min_tokens = tokens
found_solution = True
if found_solution:
max_prizes += 1
return max_prizes, min_tokens
file = "input.txt"
machines = parse_input(file)
# Part 1
max_prizes, min_tokens = min_tokens_to_win(machines)
print(min_tokens)
# Part 2
max_prizes, min_tokens = min_tokens_to_win(machines, prize_offset=10000000000000)
print(min_tokens)