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))