From 7d866c841bcf31caf3c474c86ada0d94c1a08e02 Mon Sep 17 00:00:00 2001 From: kwout Date: Wed, 6 Dec 2023 10:36:37 -0500 Subject: [PATCH] 2023 day 6 part 2 solved --- 2023/6.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/2023/6.py b/2023/6.py index dcadeeb..c920428 100644 --- a/2023/6.py +++ b/2023/6.py @@ -1,8 +1,12 @@ from math import pow, ceil, floor -lines = [l.split() for l in open("input.txt", 'r').read().splitlines()] -races = [(int(lines[0][i]), int(lines[1][i])) for i in range(1,len(lines[0]))] +lines = open("input.txt", 'r').read().splitlines() +cols = [l.split() for l in lines] +races = [(int(cols[0][i]), int(cols[1][i])) for i in range(1,len(cols[0]))] #[(time, record)] +realRace = (int(lines[0].split(": ")[1].replace(" ","")), int(lines[1].split(": ")[1].replace(" ",""))) + +print(realRace) #d = t * v #charge + t = time @@ -13,12 +17,16 @@ races = [(int(lines[0][i]), int(lines[1][i])) for i in range(1,len(lines[0]))] summa = 1 -for race in races: +def findWays(race): a = -1 b = race[0] c = -race[1] rangeStart = floor((-b + pow((pow(b,2)-(4*a*c)),0.5)) / (2*a)) + 1 rangeEnd = ceil((-b - pow((pow(b,2)-(4*a*c)),0.5)) / (2*a)) - 1 - summa *= (rangeEnd-rangeStart+1) + return rangeEnd-rangeStart+1 + +for r in races: + summa *= findWays(r) -print(summa) \ No newline at end of file +print(summa) +print(findWays(realRace)) \ No newline at end of file