Число строк после соединения заявок
Условие
В файле data.csv хранится выгрузка заявок в службу поддержки провайдера. Одна заявка может встречаться в выгрузке несколько раз: например, после повторного обращения абонента или исправления карточки.
В файле events.csv хранится журнал событий по заявкам. У одной заявки может быть несколько событий: звонки, сообщения и изменения статуса.
Требуется отфильтровать строки data.csv по указанной категории, выполнить внутреннее соединение файлов по полю ticket_id и определить число строк результата. Каждая пара строк с одинаковым ticket_id образует отдельную строку соединения. Если для идентификатора x в отфильтрованном data.csv имеется a_x строк, а в events.csv имеется b_x строк, его вклад равен a_x * b_x. Ответ равен сумме Σ a_x * b_x по всем идентификаторам.
При равенстве идентификаторов каждая подходящая строка первого файла соединяется с каждой подходящей строкой второго файла. Идентификаторы, отсутствующие после фильтрации хотя бы в одном из файлов, дают вклад 0.
Формат ввода
Рядом с программой находятся два CSV-файла в кодировке UTF-8 с разделителем-запятой.
Файл data.csv содержит от 300 до 2000 строк данных и заголовок:
ticket_id,category,district,status
ticket_id — целочисленный идентификатор заявки. Идентификатор может повторяться в нескольких строках. category — категория обращения. district — район обслуживания. status — состояние заявки; значение может быть пустым.
Файл events.csv содержит от 300 до 2000 строк данных и заголовок:
event_id,ticket_id,event_type,duration_minutes
event_id — целочисленный идентификатор события. ticket_id — идентификатор заявки из файла data.csv. event_type — тип события. duration_minutes — длительность события в минутах.
В стандартный ввод поступает одна строка с категорией category, по которой нужно отфильтровать data.csv.
Формат вывода
Выведите одно целое число — количество строк после описанного внутреннего соединения.
Ограничения
Число строк данных в data.csv: от 300 до 2000.
Число строк данных в events.csv: от 300 до 2000.
ticket_id находится в диапазоне от 1000 до 999999.
event_id находится в диапазоне от 1 до 9999999.
duration_minutes находится в диапазоне от 0 до 1440.
Длина каждого текстового поля не превышает 30 символов.
Категория во входных данных имеет длину от 3 до 30 символов и совпадает с одной из категорий файла data.csv.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Перечневые олимпиады: что это и что дают — весь перечень Минобрнауки: уровни, срок диплома, разрезы по предметам и классам
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать