ГлавнаяСборникиТурнирыРазделыФорумыУчастникиПечатьПомощьО системе

Разделы > Неотсортированные > задача:


Макс и фильтрация спама

Задачи раздела

• Макс и помощь Деду Морозу
• Макс и система регистрации
• Макс и словарь синонимов
• Макс и смешивание красок
• Макс и степени двойки
• Макс и судоку
• Макс и техническая литература
• Макс и трекер шагов
• Макс и фильтрация спама
• Макс и формирование команд
• Макс и фуршет
• Макс, поезд и самолёт
• Максимум из трех
• Медиана
• Окраска кубика
• Простейшая задача
• Путёвка и считалка

Обратная связь

Если у вас есть предложения или пожелания по работе Contester, посетите форум сайта www.contester.ru.

Лимит времени 2000/2000/2000/2000 мс. Лимит памяти 65536/65536/65536/65536 Кб.

Макс и фильтрация спама
Макс и фильтрация спама
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Максу слишком часто стали приходить электронные письма с предложениями купить чудодейственные лекарства или новые пылесосы. Так как Макс — программист, он решил самостоятельно написать систему для фильтрации спама.

Вероятность того, что сообщение, содержащее слово $$$W$$$, — спам, определяется по формуле

$$$$$$P(W) = \frac{\frac{(N_{bad} + 1)}{(M_{bad} + M)}}{\frac{(N_{good} + 1)}{(M_{good} + M)} + \frac{(N_{bad} + 1)}{(M_{bad} + M)}}$$$$$$

В этой формуле:

  • $$$N_{good}$$$, $$$N_{bad}$$$ — количество раз, когда слово $$$W$$$ встречалось в нормальных сообщениях и в спам-сообщениях соответственно;
  • $$$M_{good}$$$, $$$M_{bad}$$$ — общее количество слов в нормальных сообщениях и спам-сообщениях соответственно;
  • $$$M$$$ — общее количество различных слов во всех видах сообщений.

Вероятность того, что сообщение из слов $$$W_1$$$, $$$W_2$$$, ..., $$$W_K$$$ — спам, определяется по формуле

$$$$$$P(W_1, W_2, \ldots, W_K) = \frac{P(W_1) \cdot P(W_2) \cdot \ldots \cdot P(W_K)}{P(W_1) \cdot P(W_2) \cdot \ldots \cdot P(W_K) + (1 - P(W_1)) \cdot (1 - P(W_2)) \cdot \ldots \cdot (1 - P(W_K))}$$$$$$

Макс уже классифицировал все письма, которые приходили к нему раньше, как спам или не спам. Помогите Максу определить, является ли спамом очередное сообщение.

Входные данные

Первая строка содержит целое число $$$N$$$ ($$$1 \le N \le 1000$$$) — количество классифицированных сообщений.

Следующие $$$N$$$ строк описывают классифицированные сообщения. Каждая из них содержит последовательность $$$S_i$$$ ($$$1 \le |S_i| \le 100$$$), состоящую из строчных латинских букв и пробелов, а также целое число $$$C_i$$$ ($$$0 \le C_i \le 1$$$) — соответственно текст сообщения и его класс: 0 — спам, 1 — не спам.

Следующая строка содержит последовательность $$$T$$$ ($$$1 \le T \le 100$$$), состоящую из строчных латинских букв и пробелов, — текст сообщения, которое нужно классифицировать.

Выходные данные

Выведите одно вещественное число — вероятность того, что сообщение $$$T$$$ является спамом. Точность ответа должна составлять не менее 4 знаков после десятичной точки.

Примеры

Входные данные
6
send us your password 0
send us your review 1
password review 1
review us 0
send your password 0
send us your account 0
review us now
Выходные данные
0.251446
Входные данные
4
sale iphone sale 0
sale sale bluetooth 0
sale macbook 0
new xiaomi sale 1
sale sale sale macbook xiaomi
Выходные данные
0.747755

Для отправки решений необходимо выполнить вход.

www.contester.ru