Задача №111884. КОИБ
Избирательный комитет Флатландии готовится к предстоящим президентским выборам. Для минимизации влияния человеческого фактора на подсчет голосов было решено применить комплексы обработки избирательных бюллетеней (КОИБ).
На пост президента претендуют \(n\) кандидатов. Бюллетень содержит по одному квадратику для каждого кандидата. Избиратель должен поставить отметку ровно в один квадратик. Если ни один квадратик не отмечен или отмечено не менее двух квадратиков, то бюллетень считается недействительным. Каждый избиратель помещает свой бюллетень в специальный сканер, который анализирует отметки на бюллетене и создает специальную строку длины \(n\), соответствующую волеизъявлению избирателя: символ ‘X’ в этой строке соответствует отмеченному квадратику в бюллетене, а символ ‘.’ - неотмеченному. Теперь все результаты сканирования бюллетеней должны быть проанализированы для составления итогового протокола.
Вам даны результаты сканирования всех бюллетеней, Ваша программа должна напечатать итоговый протокол. Кандидаты должны быть упорядочены по убыванию голосов, отданных за них. Если за двух кандидатов отдано одинаковое число голосов, то они должны следовать в том же порядке, что и в избирательном бюллетене. Для каждого кандидата нужно вычислить процент голосов, отданных за него (если кандитат получил \(p\) голосов, то его процент равен \(100p/m\)). Последняя строка протокола должна содержать информацию о количестве недействительных бюллетеней.
Первая строка содержит два целых числа \(n\) и \(m\) - количество кандидатов и бюллетеней (\(2 \leq n \leq 10\); \(1 \leq m \leq 1000\)). Следующие \(n\) строк содержат фамилии кандидатов по одному на строке. Каждая фамилия состоит не более чем из \(100\) латинских символов. Нет кандидата с фамилией «Invalid».
Следующие \(m\) строк содержат результаты сканирования каждого из бюллетеней.
Выведите \(n + 1\) строку. Сначала выведите результаты кандидатов. Для каждого кандидата на отдельной строке выведите его фамилию и процент отданных за него голосов и символ ‘%’. Последняя строка должна содержать информацию о количестве недействительных бюллетеней: слово «Invalid», процент недействительных бюллетеней и символ ‘%’.
Округлите все числа до ближайшего числа с двумя знаками после десятичной точки. В спорном случае округление необходимо производить вверх (то есть число 12.345 округляется до 12.35).
4 7 Loudy Apples Dogman Miller .X.. X... .... ..X. ..XX ..X. ..X.
Dogman 42.86% Loudy 14.29% Apples 14.29% Miller 0.00% Invalid 28.57%