Runtime error на 01. Bonus Scoring System
Здравейте реших https://judge.softuni.bg/Contests/Practice/Index/2028#0
но ми дава 90/100 runtime error на
Test #6 (Runtime error)
Time used: 0.056 s
Memory used: 8.37 MB
import math
students = int(input())
lectures = int(input())
initial_bonus = int(input())
attendance_list = []
for i in range(1, students + 1):
attendances = int(input())
attendance_list.append(attendances)
print(f'Max Bonus: {math.ceil((max(attendance_list) / lectures) * (5 + initial_bonus))}.')
print(f'The student has attended {max(attendance_list)} lectures.')
Благодаря!
Здравейте! Имате ли представа защо въпреки че сложих проверка за деление на 0, пак получавам същия runtime error?
@AliYK
Последните два реда от кода трябва да бъдат в тялото на else-a, тъй като max_bonus_attendances ще съществува само, ако се влезе в else-a.
Допълнително, max_bonus_attendances е правилно да бъде деклариран още преди обхождането на судените, защото ако students_count е 0 програмата отново ще гръмне.
Оправеният код:
Ето и по-кратко решение:
Здравейте,
Моето решение е почти същото, но аз не правя проверка за нула лекции и посещения, а направо започвам с цикъла. Също така сравнявам само с > , а не с >= и решението минава.
Но на възможно най-елементарното решение получих 90
Всъщност оказа се, че проблемът в тази задача не е делението на 0. Сега гледах упражнението със Слави Капсалов за тази задача и кодът, който той написа не прави проверка за деление на 0(if lectures count == 0) и работи 100/100. Той в началото преди фор цикъла задава max_bonus & max_bonus_attendancies да са 0, а аз max_bonus & total_bonus, а max_bonus_attendancies го слагам в цикъла. И така се получава, при три 0 на входа не се стига до инициализиране на max_bonus_attandancies при мен и гурми при опита най-долу за принтиране. Пффф... камък ми падна