You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
768 B
30 lines
768 B
from math import pow, ceil, floor
|
|
|
|
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(" ","")))
|
|
|
|
#d = t * v
|
|
#charge + t = time
|
|
#t = time - charge
|
|
#v = charge
|
|
#d = (time - charge) * charge
|
|
#d = -charge^2 + time*charge
|
|
|
|
summa = 1
|
|
|
|
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
|
|
return rangeEnd-rangeStart+1
|
|
|
|
for r in races:
|
|
summa *= findWays(r)
|
|
|
|
print(summa)
|
|
print(findWays(realRace)) |