С самого начала решения в одном из тестов всегда выдавало какую-то ошибку, т.к. тесты скрыты, то я не знаю какую. С начальными кодами похожи только 14-21 строчки, но сам я не понимаю, где там может возникнуть ошибка. Может кто-то что-нибудь найдёт? Сама задача:
На телевизионном шоу зрители голосуют за участников шоу, отправляя SMS-сообщение с номером участника.Определите победителя шоу на основе присланных SMS-сообщений.
Входные данные
Первая строка входных данных содержит количество участников шоу и количество проголосовавших телезрителей N≤106N≤106. Во второй строке содержится список номеров, присланных телезрителями, через пробел.
Выходные данные
Программа должна вывести номер участника, набравшего наибольшее число голосов. Если таких несколько, то программа должна вывести номера всех победителей шоу в порядке возрастания.
Неверные номера, присланные телезрителями (то есть большие, чем NN) необходимо игнорировать.
Примеры
входные данные
3 7
1 2 2 1 3 2 3
выходные данные
2
Python 3.7, Windows
На телевизионном шоу зрители голосуют за участников шоу, отправляя SMS-сообщение с номером участника.Определите победителя шоу на основе присланных SMS-сообщений.
Входные данные
Первая строка входных данных содержит количество участников шоу и количество проголосовавших телезрителей N≤106N≤106. Во второй строке содержится список номеров, присланных телезрителями, через пробел.
Выходные данные
Программа должна вывести номер участника, набравшего наибольшее число голосов. Если таких несколько, то программа должна вывести номера всех победителей шоу в порядке возрастания.
Неверные номера, присланные телезрителями (то есть большие, чем NN) необходимо игнорировать.
Примеры
входные данные
3 7
1 2 2 1 3 2 3
выходные данные
2
Python:
def SimpleCountingSort(A):
c = max(A) + 1
d = [0] * c
for x in A:
d[x] += 1
A[:] = []
for n in range(c):
A += [n] * d[n]
s = list(map(int, input().split()))
sms = list(map(int, input().split()))
t = 0
rating = [0] * (s[0] + 2)
SimpleCountingSort(sms)
for i in range(1, s[0] + 1):
while t != len(sms) and sms[t] == i:
rating[i] += 1
t += 1
max1 = max(rating)
for e in range(1, s[0] + 1):
if rating[e] == max1:
print(e, end=" ")