АВТ
Language: Russian
English

Remote Training on Programming

Problems Online status Contests
News FAQ E-learning
For authors:
Register  ||  Login
 
Hello, Guest! Please login or register.

1467. Grades 9-11, Problem 4 - Spam-filter

Time Limit: 1 seconds
Memory Limit:524288KB
Points:100
View Problem Statistics Submit Problem added debug

Спам - это нежелательная (обычно рекламная) корреспонденция, которая приходит в ваш электронный почтовый ящик. Современные почтовые сервисы, такие как Google Mail, более-менее успешно справляются с автоматическим удалением спама.

Сигизмунд − начинающий предприниматель, который уверен, что его алгоритм узнавания спама работает лучше общеизвестных. Он хочет продать его ведущим IT-компаниям и заработать много денег.

На вход алгоритму подается список писем для проверки. Для каждого письма алгоритм выставляет оценку − натуральное число в диапазоне от 1 до 109. Чем больше оценка, тем более вероятно, что письмо является спамом.

Казалось бы, алгоритм готов, и дело сделано. Однако, Сигизмунд осознал, что не всё так просто. Для алгоритма необходимо ещё определить порог срабатывания − то есть выше какой оценки письмо будет считаться спамом, чтобы можно было его автоматически удалить.

Для этого Сигизмундом была подготовлена обучающая выборка, состоящая из N писем. Все эти письма были им просмотрены вручную, и для каждого письма отмечено, является ли оно спамом, или нет.

Вам необходимо помочь Сигизмунду выбрать правильный порог для отсеивания спама на основе обучающей выборки. Качество отсеивания будет определяться метрикой F1, которая вычисляется по формуле

F1 = 2precisionrecall / (precision + recall)

В случае, когда precision и recall равны нулю, считается, что F1 тоже равна нулю.

Метрика precision для порога t равна отношению числа спам-писем со значением оценки ≥ t к числу всех писем со значением оценки ≥ t.

Метрика recall для порога t равна отношению числа спам-писем со значением оценки ≥ t к общему числу всех спам-писем безотносительно порога.

Ваша задача − рассчитать значение порога t (натуральное число, большее или равное единице), которое даёт максимальное значение F1. При наличии нескольких различных вариантов t с максимальным значением F1 необходимо выбрать минимальный t.

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

В первой строке содержится натуральное число N (1 ≤ N ≤ 105) − общее количество писем.

Во второй строке записаны N натуральных чисел через пробел − значение оценки для первого, второго и так далее письма (натуральные числа в диапазоне от 1 до 109).

В третьей строке записано число K (1 K N) − количество спам-писем.

В четвёртой строке перечислены K целых чисел через пробел в диапазоне от 1 до N включительно − номера писем, которые являются спамом.

 

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

Выведите одно натуральное число найденный порог t

Пример ввода 1

5

1 2 3 4 5

3

1 3 4

Пример вывода 1

1

Пример ввода 2

10

1 2 3 4 5 6 7 8 100 1000

1

9

Пример вывода 2

9

Система оценивания.

Решения, верно работающие при  N ≤ 1000, будут оцениваться из 70 баллов

 

 


View Problem Statistics Submit Problem discussion Author/source:
Problems from Contests and Camps / School olympiads and couses of Vologda region / All-Russian school olympiad, municipal stage / Olympiad on Informatics 2015 - Municipal Stage / Grades 9-11 /
1466. 3 - Grades 9-11, Problem 3 - Factorial 1467.
Problems from Contests and Camps / School olympiads and couses of Vologda region / All-Russian school olympiad, municipal stage / Municipal Stage 2015 - All Problems /
1466. 7 - Grades 9-11, Problem 3 - Factorial 1467.
time generating 0.125 sec.
© Copyright VSU, AVT, Nosov D.A., Andrianov I.A.