Задача A Внутренние узлы Задача B. Heroes of Money and Magic

advertisement
Задача A Внутренние узлы
Максимальное время работы на одном тесте:
2 секунды
Максимальный объем используемой памяти:
64 мегабайта
Рассмотрим бесконечную клетчатую бумагу. Покрасим некоторые узлы сетки в черный цвет, а
остальные будем считать белыми. Узел V называется внутренним, если он внутренний по вертикали и
внутренний по горизонтали. Узел внутренний по горизонтали, если слева и справа от V расположены
по крайней мере по одному черному узлу. Узел внутренний по вертикали, если сверху и снизу от V
расположены по крайней мере по одному черному узлу.
На каждом шаге все внутренние белые узлы становятся черными, а остальные сохраняют свой
цвет. Процесс прекращается, когда все внутренние вершины становятся черными. Напишите
программу, которая вычисляет количество черных узлов после окончания процедуры перекраски.
Входные данные
Первая строка содержит одно целое число n (0 ≤ n ≤ 100 000) – количество черных узлов в
начале. Каждая из следующих n строк содержит два целых числа – координаты очередного черного
узла, по модулю не превосходящие 109.
Выходные данные
Выведите число черных вершин после окончания всех перекрасок. Если процедура
никогда не закончится, то выведите –1.
Пример
Входные данные
4
0 2
2 0
-2 0
0 -2
Выходные данные
5
Задача B. Heroes of Money and Magic
Максимальное время работы на одном тесте:
2 секунды
Максимальный объем используемой памяти:
64 мегабайта
Вы — инвестор, который играет на бирже, спекулируя акциями некой компании. В результате
использования машины времени для каждого дня в течение некоторого предстоящего периода
времени вам известна стоимость акций, и вы хотите заработать как можно больше денег.
Акции являются неделимыми. Кроме того, в любой момент можно купить или продать (из
имеющихся у вас) любое число акций.
Единственное, что вам мешает сказочно обогатиться — это комиссия, которую нужно платить
за каждую операцию на бирже. Штраф фиксирован и не зависит от количества акций, с которыми
совершается операция. Он взимается до каждой сделки по покупке акций и после каждой сделки по
продаже акций.
Если у вас недостаточно денег, и вы не можете заплатить комиссию, соответствующая
операция не допускается.
К концу последнего дня вы должны продать все свои акции.
Входные данные
В первой строке входного файла даны целые числа N, M и F: количество дней, для которых
известна цена акций (1 ≤ N ≤ 105), сумма денег, которая у вас есть в начале первого дня (1 ≤ M ≤ 105) и
величина комиссии F (1 ≤ F ≤ 105), взимаемой за каждую операцию.
В следующих N строках даны целые числа Pi (1 ≤ Pi ≤ 105) — цена акции в i-й день.
Гарантируется, что входные данные таковы, что ответ на задачу меньше 1018.
Выходные данные
Выведите максимальную сумму денег, которая у вас может оказаться через N дней.
Примеры
Входные данные
3 10000 1
4000
4004
4002
3 10000 1
4001
4000
4004
Выходные данные
10006
10006
Download