Нужно выполнить следующие действия и вывести результат вычислений:
- Отсортировать все имена в лексикографическом порядке.
- Посчитать для каждого имени алфавитную сумму – сумму порядковых номеров букв (MAY: 13 + 1 + 25 = 39).
- Умножить алфавитную сумму каждого имени на порядковый номер имени в отсортированном списке (индексация начинается с 1). Например, если MAY находится на 63 месте в списке, то результат для него будет 63 * 39 = 2457.
- Сложить произведения из п. 3 для всех имен из файла и получить число.
- Вывести полученную сумму.
Файл состоит из строк вида: <host>\t<ip>\t<page>\n
, где host — корневой домен, ip — IP-адрес, page — «хвост» ссылки.
Необходимо вывести 5 IP-адресов, которые встречаются в файле чаще других.
В школе ученики и репетиторы занимаются в специальном онлайн-классе, в котором они могут общаться друг с другом, рисовать на доске, переписываться в чате, обмениваться файлами и решать различные задачки. Информацию о каждом уроке записывается в базу данных в таблицу lessons. На каждом таком уроке присутствует один репетитор и один ученик. В конце урока, когда учитель и ученик покидают класс, им предлагается по желанию оценить качество пройденного урока по пятибальной шкале. Оценки записываются в таблицу quality.
Файл users.txt хранит информацию о пользователях:
- id – уникальный идентификатор пользователя
- role – указывает, является ли пользователь учеником (pupil) или учителем (tutor)
Файл lessons.txt содержит следующие поля:
- id – уникальный идентификатор урока
- event_id – идентификатор, связывающий уроки с файлом participants. У нескольких уроков может быть один и тот же event_id
- subject – предмет урока, строка
- scheduled_time – время начала урока, в формате ГГГГ-ММ-ДД чч:мм:сс (иногда есть еще миллисекунды). Время указано в UTC
Файл participants.txt позволяет связать урок с его участниками. Он содержит следующие поля:
- user_id – идентификатор пользователя (указывает на запись в файле users.txt)
- event_id – идентификатор, связывающий урок с участником. Чтобы понять, какие пользователи были на уроке Х, нужно найти в файле participants.txt строки, у которых event_id совпадает с event_id урока Х.
Файл quality.txt содержит следующие поля:
- lesson_id – идентификатор урока, указывающий на запись в таблице lessons.txt. У нескольких строчек из этого файла может быть один и тот же lesson_id, потому что оценок за урок может быть несколько (в случае, когда и ученик, и репетитор оценили качество урока)
- tech_quality – оценка качества урока. Это число от 1 до 5. Иногда его может не быть, если пользователь не выставил оценку.
Нужно найти, какой из репетиторов получал самую низкую среднюю оценку качества после уроков по физике за каждый день, и вывести эту оценку.
Примечания:
- Необходимо учитывать оценки и учителей, и учеников.
- Нужно учитывать только тех учителей, за уроки по физике которых в этот день стоит хотя бы одна оценка.
- Начало урока для решения задачи должно учитываться по московскому времени.
- При расчёте среднего значения не нужно учитывать ситуации, когда пользователь не выставил оценку.
- Если у нескольких учителей после расчёта совпадают средние значения, можно вывести любого из них.