eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Вероятный диагноз

Вероятный диагноз

В качестве курсовой работы Вася проектирует информационную систему больницы. Сейчас ему нужно написать компонент, который ставит предварительный диагноз на основе статистических данных. В программу загружена информация об \textit{N }болезнях и \textit{M }возможных симптомах. Для каждой болезни известна вероятность того, что у больного будет проявляться каждый из симптомов. Аналогичная информация известна и для здоровых людей. Вася предполагает, что каждый из пациентов болен не более чем одной болезнью, а также то, что если зафиксировать болезнь (или её отсутствие), то различные симптомы будут проявляться независимо друг от друга. В программу загружается информация о \textit{K }пациентах. Для каждого из пациентов известно, что некоторые из симптомов у него проявляются, а некоторые нет, про некоторые же из симптомов ничего не известно. Нужно определить вероятность того, что он болен каждой из известных болезней. \subsection{Ограничения}1 \textit{≤ N ≤ }200 1 \textit{≤ M ≤ }200 1 \textit{≤ K ≤ }200 \InputFile Первая строка входного файла содержит два целых числа: \textit{N }и \textit{M }. Следующая строка содержит \textit{M }чисел --- вероятность проявления каждого из симптомов у здорового человека. Следующие \textit{N }строк содержат информацию о болезнях. Каждая из них содержит \textit{M }+ 1 чисел: вероятность того, что человек болен этой болезнью (сумма этих вероятностей по всем болезням на превосходит 100\%), и вероятность проявления каждого из симптомов, если человек болен этой болезнью. Следующая строка содержит единственное целое число \textit{K}. Следующие \textit{K }строк содержат информацию о пациентах: каждая из них содержит строку длины \textit{M }, каждый из символов которой равен +, если соответствующий симптом у пациента проявляется, -, если не проявляется, или ?, если о наличии этого симптома нет сведений. Все вероятности во входном файле указаны в процентах, это числа от 0 до 100 ровно с двумя знаками после точки. Гарантируется, что комбинация симптомов для каждого пациента имеет ненулевую вероятность. \OutputFile Выведите \textit{K }строк --- по одной на каждого пациента. Каждая строка должна содержать \textit{N }чисел --- веро- ятности того, что соответствующий пациент болен каждой из болезней. Выводите вероятности как числа от 0 до 1 с абсолютной погрешностью не более 10^\{−7\}.
Лимит времени 1 секунда
Лимит использования памяти 256 MiB
Входные данные #1
1 2
10.00 10.00
40.00 90.00 90.00
3
??
++
+-
Выходные данные #1
0.400000000
0.981818182
0.400000000
Автор Евгений Капун
Источник Зимняя школа по программированию 2014, Харьков