Python. Задача 8-42

Дед Мороз и Снегурочка приходят на детские утренники с мешком конфет. Дед Мороз делит конфеты поровну между всеми присутствующими детьми (детей на утреннике никогда не бывает больше 100), а оставшиеся конфеты отдает Снегурочке. Снегурочка каждый раз записывает в блокнот количество полученных конфет. Если конфеты разделились между всеми детьми без остатка, Снегурочка ничего не получает и ничего не записывает. Когда утренники закончились, Деду Морозу стало интересно, какое число чаще всего записывала Снегурочка. Дед Мороз и Снегурочка — волшебные, поэтому число утренников N, на которых они побывали, может быть очень большим. Вывести число, которое Снегурочка записывала чаще всего.

Входные данные: Дан входной файл, в первой строке которого задается одно целое положительное число — количество утренников N. Каждая из следующих N строк содержит два целых числа: сначала D — количество пришедших на очередной утренник детей, а затем K – количество конфет в мешке Деда Мороза на этом утреннике. Гарантируется выполнение следующих соотношений:
1 ≤ N ≤ 100000
1 ≤ D ≤ 100 (для каждого D)
D ≤ K ≤ 1000 (для каждой пары D, K)

Описание выходных данных: Программа должна вывести одно число — то, которое Снегурочка записывала чаще всего. Если несколько чисел записывались одинаково часто, надо вывести большее из них. Если Снегурочка ни разу ничего не записывала, надо вывести ноль.

Пример входных данных:
7
10 58
15 315
20 408
100 1000
32 63
32 63
11 121

Пример выходных данных для приведённого выше примера входных данных: 31

Ответ
7
Решение
# Максимальное количество детей
m = 100
f = open('c:\\work\\test-8-42-1.txt')
# Считываем из первой строки количество утренников
N = int(f.readline())
# Список записываемых чисел
a = [0] * m
# Подсчитываем записываемые числа
for i in range(1, N):
    # Считываем количество детей и количество конфет
    D, K = map(int, f.readline().split())
    # Остаток конфет
    p = K % D
    if p > 0:
        a[p] += 1
f.close()
# Находим число записанное максимальное количество раз
# Максимальное количество
D = 0
# Индекс списка - записывемое число
K = 0
for i in range(1, m):
    if a[i] > D:
        D = a[i]
        K = i
print(K)