◂ 14 décembre 2015 ▸
Reindeer Olympics :
- code.py
- codeObjets.py
N = 2503
rennes = [
['Rudolph', 22, 8, 165],
['Cupid', 8, 17, 114],
['Prancer', 18, 6, 103],
['Donner', 25, 6, 145],
['Dasher', 11, 12, 125],
['Comet', 21, 6, 121],
['Blitzen', 18, 3, 50],
['Vixen', 20, 4, 75],
['Dancer', 7, 20, 119],
]
def dist(secondes, vitesse, tempsCourse, tempsRepos):
tempsCycle = tempsCourse + tempsRepos
nbCycles = secondes // tempsCycle
reste = min(tempsCourse, secondes % tempsCycle)
return (nbCycles * tempsCourse + reste) * vitesse
# Partie 1
results = [(dist(N, *renne[1:]), renne[0]) for renne in rennes]
results.sort(reverse=True)
print(results)
# Partie 2
scores = len(rennes) * [0]
for second in range(1, N+1):
results = [(dist(second, *rennes[i][1:]), i) for i in range(len(rennes))]
results.sort(reverse=True)
maxScore = results[0][0]
# print(results, maxScore)
for i in range(len(rennes)):
if results[i][0] == maxScore:
scores[results[i][1]] += 1
else:
break
scores.sort(reverse=True)
print(scores)