from collections import Counter
from math import ceil
def process_solutions(n):
correct_solutions = set()
solution_counter = Counter()
for _ in range(n):
line = input().strip()
if ': ' in line:
nickname, result = line.split(': ', 1)
solution_counter[result] += 1
if result == 'Correct':
correct_solutions.add(nickname)
else:
# Обработка некорректного ввода
solution_counter['Invalid'] += 1
return len(correct_solutions), solution_counter
def main():
try:
n = int(input())
correct_count, solution_counter = process_solutions(n)
if not correct_count and solution_counter['Correct'] == 0:
print("Вы можете стать первым, кто решит эту задачу")
else:
total_attempts = sum(solution_counter.values()) - solution_counter['Invalid']
if total_attempts > 0:
correct_percentage = ceil(solution_counter['Correct'] / total_attempts * 100)
print(f"Верно решили {correct_count} учащихся")
print(f"Из всех попыток {correct_percentage}% верных")
else:
print("Недостаточно корректных попыток для анализа")
except ValueError:
print("Ошибка: Введите корректное число попыток")
if __name__ == "__main__":
main()
У каждой задачи на Stepik есть виджет с процентом верных решений и общим количеством решений. В последнее время у Stepik барахлит алгоритм, обновляющий этот виджет. Помогите Stepik и напишите программу, которая будет подсчитывать, сколько учеников решили задачу и сколько верных попыток составляет от общего числа попыток.
На вход вашей программе подается число ? – общее число попыток решить задачу. Далее на вход подаются ? строк, каждая в следующем формате:
"<никнейм>: <результат проверяющей системы>"
где <результат проверяющей системы> может принимать только два значения: Correct (задача решена верно) или Wrong (задача решена неверно).
Ваша программа должна посчитать и вывести, сколько учащихся решили верно задачу и сколько верных попыток из всех в следующих форматах:
"Верно решили <количество верно решивших учащихся> учащихся
Из всех попыток <процент верных решений>% верных"
где <количество верно решивших учащихся> – количество уникальных учащихся, которые верно решили задачу.
При этом если у задачи еще нет верных отправок решений, то программа должна вывести текст:
"Вы можете стать первым, кто решит эту задачу"
Процент верных решений ваша программа должна округлять до целого числа по математическим правилам (см. Примечание 1).
- Формат входных данных
На вход программе подаются число ?, а затем – ? строк, представляющих собой решения учащихся.- Формат выходных данных
Программа должна вывести текст в соответствии с условием задачиПРИМЕЧАНИЙ:
1. Округление процента решений должно осуществляться по математическим правилам: число округляем в меньшую сторону, если дробная часть менее 0.5, или в большую сторону в противном случае. Например:
"8.25≈8
8.5≈9
8.75≈9"
2. Гарантируется, что для разных учащихся никнейм не может совпадать.
3. Гарантируется, что никнейм учащегося не может содержать символ двоеточия (:).
4. Stepik обещает скоро починить счетчик решений. ?