Утечка архивной отметки о гнездовании
Условие
Сотрудники парка проверяют простую модель, предсказывающую, гнездится ли птица в парке. В первой таблице собраны сведения, доступные во время наблюдений: идентификатор птицы и число утренних встреч с ней.
После окончания сезона составлена вторая таблица. В ней записан истинный факт гнездования и архивная отметка. Архивная отметка заполнялась после проверки гнезда, поэтому использовать её при настоящем прогнозе нельзя: это утечка признака.
Нужно сопоставить строки двух таблиц по идентификатору птицы и вычислить качество двух правил. Первое правило использует только число утренних встреч. Второе дополнительно использует архивную отметку.
Для птицы с числом утренних встреч visits первое правило выдаёт прогноз p0 = 1, если visits >= 3, и p0 = 0 в остальных случаях. Второе правило выдаёт прогноз p1 = 1, если visits >= 3 или архивная отметка равна 1, и p1 = 0 в остальных случаях. Значение архивной отметки -1 означает пропуск и не считается равным 1.
Качество каждого правила измеряется точностью классификации: \[Acc = \frac{1}{n}\sum_{i=1}^{n}[p_i=y_i],\] где y_i — истинный факт гнездования, а выражение в квадратных скобках равно 1 при совпадении прогноза с ответом и 0 иначе. Если число утренних встреч равно 3, оба правила выдают прогноз 1.
Формат ввода
В первой строке дано целое число n — число птиц.
В следующих n строках дана первая таблица: идентификатор птицы bird_id и целое число visits.
В следующих n строках дана вторая таблица: идентификатор птицы bird_id, целое число nesting и целое число archive_mark.
Идентификаторы в каждой таблице не повторяются, и множества идентификаторов двух таблиц совпадают. Строки второй таблицы могут идти в другом порядке. Пропусков в идентификаторах, числе встреч и истинном факте гнездования нет. Пропуск архивной отметки записывается числом -1.
Формат вывода
Выведите два целых числа через пробел: процент точности первого правила, затем процент точности второго правила.
Для каждого правила вычислите значение floor(100 * correct / n), где correct — число верных прогнозов. Дробная часть отбрасывается.
Ограничения
1 <= n <= 4000.
Длина bird_id составляет от 1 до 20 символов. Идентификатор состоит из строчных латинских букв, цифр и символа _.
0 <= visits <= 1000.
nesting равно 0 или 1.
archive_mark равно -1, 0 или 1.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует