Задача №113970. База данных Деда Мороза
В своей великоустюгской базе данных Дед Мороз хранит информацию о детях, написавших ему письмо с просьбой о подарке. Для каждого письма хранится фамилия, имя, отчество, дата рождения ребёнка и название желаемого подарка. Данные хранятся в виде пяти строк; при этом имя, фамилия, отчество, название подарка — непустые строки, составленные из заглавных символов латиницы; дата рождения — тоже строка вида YYYY-MM-DD . Здесь YYYY — год рождения, MM — месяц, DD — день; месяц и день обязательно представляются двумя символами с ведущим нулём при необходимости. Каждой записи из базы данных Дед Мороз сопоставил беззнаковое 4-байтное целое число — сумму кодов в таблице ASCII всех символов всех строк, составляющих запись. В компьютерных науках такое число называется хешем , метод вычисления хеша — хеш-функцией .
Соответственно, нужна процедура, которая под заданному хешу будет выдавать все записи, хеш которых совпадает с заданным. В случае отсутствия таких записей следует найти количество уникальных хешей, которые отстоят не более, чем на \(100\), от заданного значения, и выдать это количество и эти хеши.
первой строке задано целое число \(h\) — желаемое значение хеша (\(0 \leq h \leq 2^{32}-1\)). Во второй строке задано целое число \(n\) — количество записей в базе данных (\(1 \leq n \leq 20000\)). В следующих \(n\) строках идут записи из базы данных (до \(100\) символов в каждой): по пять последовательностей символов в строке, разделённые пробелами: фамилия, имя, отчество, дата рождения, подарок.
Если записи, имеющие нужный хеш, найдены, выведите сообщение « FOUND RECORDS », в следующей строке — их количество, затем по одной в строке выведите все такие записи в любом порядке. Если подходящих записей не найдено, выведите « NO MATCHES ». В следующей строке выведите количество хешей, отстоящий от заданного значения не более чем на \(100\), затем по одному в строке выведите эти хеши в любом порядке.
2312 3 PETROV IVAN SIDOROVICH 2010-12-03 MECH IVANOV SIDOR PETROVICH 2012-10-30 MECH SIDOROV PETR IVANOVICH 2011-03-21 MECH
FOUND RECORDS 2 PETROV IVAN SIDOROVICH 2010-12-03 MECH IVANOV SIDOR PETROVICH 2012-10-30 MECH
2413 3 PETROV IVAN SIDOROVICH 2010-12-03 MECH IVANOV SIDOR PETROVICH 2012-10-30 MECH SIDOROV PETR IVANOVICH 2011-03-21 MECH
NO MATCHES 1 2313