51 lines
985 B
Python
51 lines
985 B
Python
|
|
||
|
def solve_race(time, goal):
|
||
|
res = 0
|
||
|
|
||
|
for i in range(time+1):
|
||
|
speed = i
|
||
|
distance = speed*(time-i)
|
||
|
# print(f"speed: {speed}, distance: {distance}, goal: {goal}")
|
||
|
if distance > goal:
|
||
|
res += 1
|
||
|
# print("")
|
||
|
return res
|
||
|
|
||
|
def solve(file):
|
||
|
part1 = 1
|
||
|
part2 = 1
|
||
|
race_results = []
|
||
|
times = []
|
||
|
distances = []
|
||
|
|
||
|
#! Part 1
|
||
|
arr1 = file[0].split(":")[1].split(" ")
|
||
|
arr2 = file[1].split(":")[1].split(" ")
|
||
|
|
||
|
for i in range(len(arr1)):
|
||
|
if arr1[i] != "":
|
||
|
times.append(int(arr1[i]))
|
||
|
|
||
|
for i in range(len(arr2)):
|
||
|
if arr2[i] != "":
|
||
|
distances.append(int(arr2[i]))
|
||
|
|
||
|
for i in range(len(times)):
|
||
|
race_results.append(solve_race(times[i], distances[i]))
|
||
|
|
||
|
for i in range(len(race_results)):
|
||
|
if race_results[i] >= 0:
|
||
|
part1 *= race_results[i]
|
||
|
|
||
|
#! Part 2
|
||
|
arr1 = file[0].split(":")[1].replace(" ", "")
|
||
|
arr2 = file[1].split(":")[1].replace(" ", "")
|
||
|
part2 = solve_race(int(arr1), int(arr2))
|
||
|
|
||
|
return part1, part2
|
||
|
|
||
|
|
||
|
|
||
|
file = open("input.txt", "r").readlines()
|
||
|
print(solve(file))
|