''' ****** Задание 2 из 3 ********* * Что нужно сделать Ваша задача — проанализировать вовлечённость ученика и вычислить его рейтинг. А если входные данные окажутся неверными — указать это. Формат ввода Одна строчка, в которой через пробел подаются следующие данные: N M Q cw sw hw tw N (num_students) — число учеников на курсе M (num_lessons) — количество занятий в курсе Q (max_rating) — максимальный рейтинг cw (classwork_coefficient) — коэффициент для активности на занятии sw (selfwork_coefficient) — коэффициент для практики hw (homework_coefficient) — коэффициент для домашней работы tw (testwork_coefficient) — коэффициент для контрольной работы Далее идёт фамилия ученика и несколько строчек (M) с оценками ученика на занятиях в формате: Иванов a₁,b₁,c₁,d₁ a₂,b₂,c₂,d₂ a₃,b₃,c₃,d₃ ⋮ aₘ,bₘ,cₘ,dₘ Где aᵢ,bᵢ,cᵢ,dᵢ — это оценки за i-ое занятие: aᵢ (classwork_grade) — оценка за активность на занятии bᵢ (selfwork_grade) — оценка за практику на занятии cᵢ (homework_grade) — оценка за домашнюю работу на занятии dᵢ (testwork_grade) — оценка за контрольную работу на занятии Если не было активности, ученик отсутствовал либо не проявил себя на занятии — значение за активность будет 0. Формат вывода Фамилия и процент от максимального рейтинга, округленный до целого числа с помощью функции round(). Через пробел. Иванов x% Также сделайте проверку на верность вводных данных. Если условие не выполняется, то необходимо вывести строку «Во введённых данных ошибка» M > 0 (количество проведённых занятий равно 1 и больше) cw, sw, hm, tw > 0 (все активности учитываются в рейтинге) Рассчитанный максимальный рейтинг ученика на программе не должен превышать Q. Во введённых данных ошибка Формула для расчёта рейтинга Про работу функции round() подробнее можете почитать в подсказках. Пример 1 Ввод 4 5 190 1 2 4 6 Сергеев 0,0,2,0 3,3,2,2 3,1,3,1 3,0,1,2 0,3,3,1 Вывод Сергеев 54% ''' if __name__ == "__main__" import sys data = sys.stdin.read().splitlines() if not data: print("Во введённых данных ошибка") sys.exit() try: header = list(map(int, data[0].split())) N, M, Q, cw, sw, hw, tw = header if M <= 0 or cw <= 0 or sw <= 0 or hw <= 0 or tw <= 0: print("Во введённых данных ошибка") sys.exit() surname = data[1] grades = [] for line in data[2:2 + M]: row = list(map(int, line.split(','))) if len(row) != 4: print("Во введённых данных ошибка") sys.exit() grades.append(row) total = 0 for a, b, c, d in grades: total += a * cw + b * sw + c * hw + d * tw if total > Q: print("Во введённых данных ошибка") sys.exit() percent = round((total / Q) * 100) print(f"{surname} {percent}%") except (ValueError, IndexError): print("Во введённых данных ошибка")