aoc/23/day6/main.py

59 lines
1.2 KiB
Python
Raw Permalink Normal View History

2023-12-06 05:24:30 +00:00
import tqdm
import re
input = "input.txt"
times = []
distances = []
with open(input, "r") as f:
for line in f:
line = line.strip()
if line.startswith("Time"):
times = map(int, re.split("\\s+", line)[1:])
else:
distances = map(int, re.split("\\s+", line)[1:])
races = []
for time, distance in zip(times, distances):
races.append((time, distance))
part1 = 1
for time, record_distance in races:
record_beaten_times = 0
for time_held in range(time):
time_left = time - time_held
speed = time_held
distance = speed * time_left
if distance > record_distance:
record_beaten_times += 1
part1 *= record_beaten_times
print("part1", part1)
time = 0
record_distance = 0
with open(input, "r") as f:
for line in f:
line = line.strip()
if line.startswith("Time"):
time = int("".join(re.split("\\s+", line)[1:]))
else:
record_distance = int("".join(re.split("\\s+", line)[1:]))
print(time)
part2 = 0
for time_held in tqdm.tqdm(range(time)):
time_left = time - time_held
speed = time_held
distance = speed * time_left
if distance > record_distance:
part2 += 1
print("part2", part2)