Задание выполняется с использованием прилагаемых файлов Источник: kpolyakov.spb.ru
Компьютер был заражён вирусами. Супервирусами называются самые опасные вирусы, уровень опасности которых превышает средний уровень опасности всех имеющихся. Нужно определить, какое максимальное количество вирусов можно удалить за заданное время по следующим правилам: — необходимо удалить как можно больше супервирусов; — нельзя удалять два и более супервируса подряд; — нельзя удалять супервирус последним.
Входные данные
Первая строка входного файла содержит количество записей N и общее время T, отведённое на удаление этих вирусов. Каждая из следующих N строк содержит два целых числа: уровень опасности вируса и время, которое требуется для его удаления.
Выходные данные
Запишите в ответе два числа: сначала общее количество вирусов, которое удалось удалить, затем суммарное время, которое было затрачено на удаление супервирусов.
Пример организации исходных данных во входном файле:
5 50
7 13
9 20
4 3
8 9
5 5
Средний уровень опасности равен 6.6, значит, суперопасными считаются вирусы с уровнем опасности >= 7. Удаляем сначала супервирус 8-9, далее обычный вирус 4-3, потом снова суперопасный 7-13, затем обычный 5-5. Обычных вирусов не осталось, значит, суперопасные тоже удалять нельзя. Итого удалено 4 вируса. На удаление супервирусов затрачено времени 9 + 13 = 22. Ответ: 4 22.
Решение 1 ( Excel / LibreOffice):
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значения количества записей и общее время, отведенное на удаление вирусов, куда-нибудь, где они нам не помешают. Найдем средний уровень опасности вирусов — =СРЗНАЧ(A1:A10000). Суперопасными считаются вирусы с уровнем опасности >= 5004. Для удобства все супервирусы, которые мы выбрали, перенесем в отдельный столбик (столбец C). Удалим столбцы, характеризующие уровень опасности вирусов. Сортируем получившиеся столбцы по возрастанию и начинаем набирать сумму, пока она меньше, чем время, отведенное на удаление. Максимальная сумма, которую мы можем собрать, чтобы не превысить отведенное время, — это 9997173. Выходит, что мы можем удалить 4476 вирусов (2238 вирусов и 2238 супервирусов), время затраченное на удаление супервирусов — 5124042.