41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
from lib import get_data
|
|
from lib import ints, fst
|
|
from collections import defaultdict
|
|
|
|
data = get_data(__file__).strip()
|
|
deers = []
|
|
for line in data.splitlines():
|
|
speed, time, rest = ints(line)
|
|
deers.append([0, speed, time, rest, time, 0])
|
|
|
|
points = defaultdict(int)
|
|
for _ in range(2503):
|
|
max_dists = defaultdict(list)
|
|
for i, deer in enumerate(deers):
|
|
dist, speed, time, rest, time_left, rest_left = deer
|
|
if time_left > 0:
|
|
time_left -= 1
|
|
dist += speed
|
|
elif time_left == 0:
|
|
time_left = -1
|
|
rest_left = rest - 1
|
|
elif rest_left > 0:
|
|
rest_left -= 1
|
|
elif rest_left == 0:
|
|
time_left = time - 1
|
|
dist += speed
|
|
rest_left = -1
|
|
max_dists[dist].append(i)
|
|
|
|
deer[0] = dist
|
|
deer[4] = time_left
|
|
deer[5] = rest_left
|
|
|
|
max_deers = max(max_dists.items())
|
|
for di in max_deers[1]:
|
|
points[di] += 1
|
|
|
|
|
|
print(max(map(fst, deers)))
|
|
print(max(points.values()))
|