Изпитна задача Cruise Games 70/100. Идеи?
Условие
Задачата е изпитна, така че не мога да видя тестовете. Някакви идеи защо получавам 70/100?
from math import floor as fl
name = input()
games = int(input())
score = 0
for g in range(games):
game = input()
points = int(input())
if game == "volleyball":
points *= 1.07
elif game == "tennis":
points *= 1.05
elif game == "badminton":
points *= 1.02
score += points
if score / games >= 75:
print(f"Congratulations, {name}! You won the cruise games with {fl(score)} points.")
else:
print(f"Sorry, {name}, you lost. Your points are only {fl(score)}.")
Няма значение дали използвам int или math.floor за оформяне на резултата, също с и без равното накрая не се променя нищо. Нещо друго, което изпускам?
Ред.: Няма значение, намерих си грешката. Смятах средно аритметично резултата от всички игри накуп, а е трябвало от всеки вид игра поотделно, и ако резултата от примерно тениса е по-малък от 75, дори другите да са толкова повече, та да компенсират провала в едната игра, пак се счита за загуба.
Ред. 2: Преправеният код за сравнение:
from math import floor as fl
name = input()
games = int(input())
volleyball_games = 0
tennis_games = 0
badminton_games = 0
volleyball_score = 0
tennis_score = 0
badminton_score = 0
for g in range(games):
game = input()
points = int(input())
if game == "volleyball":
volleyball_games += 1
volleyball_score += points * 1.07
elif game == "tennis":
tennis_games += 1
tennis_score += points * 1.05
elif game == "badminton":
badminton_games += 1
badminton_score += points * 1.02
score = volleyball_score + tennis_score + badminton_score
if volleyball_score / volleyball_games >= 75 and tennis_score / tennis_games >= 75 and badminton_score / badminton_games >= 75:
print(f"Congratulations, {name}! You won the cruise games with {fl(score)} points.")
else:
print(f"Sorry, {name}, you lost. Your points are only {fl(score)}.")