Ожидаемое число решающих партий трансляции

тема: Вероятность и матожидание · уровень: средний

Условие

В шахматном турнире часть досок показывают в основной трансляции. Для каждой партии расписание содержит признак показа, а отдельная таблица прогнозов может содержать вероятность решающего результата: победы одного из соперников, а не ничьей.

Для каждой партии i из трансляции пусть p_i — вероятность решающего результата. Если прогноз для партии отсутствует, считается, что её вероятность равна 0. Требуется найти математическое ожидание числа решающих партий в трансляции. По линейности математического ожидания оно равно E = p_1 + p_2 + ... + p_k, где суммирование идёт только по партиям с признаком показа 1.

Идентификаторы партий внутри каждой таблицы не повторяются. При равенстве вероятностей несколько партий учитываются по отдельности, каждая со своим признаком показа.

Формат ввода

В первой строке записаны два целых числа n и m: число партий в расписании и число имеющихся прогнозов.

В следующих n строках записано расписание в формате: game_id white_player black_player broadcast

Здесь game_id — идентификатор партии, white_player и black_player — имена игроков без пробелов, broadcast равен 1, если партия показывается в основной трансляции, и 0 иначе.

В следующих m строках записаны прогнозы в формате: game_id decisive_probability

Здесь decisive_probability — вероятность решающего результата в партии с данным идентификатором. Строки прогнозов могут идти в произвольном порядке. Для некоторых партий расписания прогноз может отсутствовать.

Формат вывода

Выведите математическое ожидание числа решающих партий в основной трансляции с тремя знаками после точки.

Ограничения

1 ≤ n ≤ 2000.

0 ≤ m ≤ n.

1 ≤ game_id ≤ 10^9.

Длина каждого имени игрока составляет от 1 до 20 символов. Имена состоят из латинских букв, цифр и символа _.

broadcast равен 0 или 1.

decisive_probability задано десятичным числом от 0.000 до 1.000 включительно и содержит ровно три знака после точки.

Каждый game_id из таблицы прогнозов встречается в таблице расписания. Прогнозы для части партий могут отсутствовать. В трансляции может не быть ни одной партии.

Решить задачу с автопроверкой на Python →

Куда дальше