Задача A. Максимумы

advertisement
Кубок «ОАО НПО «Аврора» по программированию 2015
Отборочное соревнование, 16 мая 2015 года
Задача A. Максимумы
Имя входного файла:
Имя выходного файла:
Ограничение по времени:
Ограничение по памяти:
стандартный поток ввода
стандартный поток вывода
2 секунды
256 мегабайт
Задана матрица, состоящая из n строк и m столбцов, состоящая из целых чисел. Будем называть
элемент максимумом, если он строго больше всех элементов, находящихся в соседних с ним по
стороне ячейках.
По заданной матрице найдите количество максимумов в ней.
Формат входных данных
В первой строке ввода заданы числа n и m (1 ≤ n, m ≤ 100) — число строк и столбцов в матрице,
соответственно. Далее идут n строк по m целых чисел ai,j (1 ≤ ai,j ≤ 100) в каждой — элементы
матрицы.
Формат выходных данных
Выведите количество максимумов в заданной матрице.
Примеры
ввод
4
1
2
1
2
4
2
1
2
1
вывод
8
1
2
1
2
2
1
2
1
Страница 1 из 5
Кубок «ОАО НПО «Аврора» по программированию 2015
Отборочное соревнование, 16 мая 2015 года
Задача B. Крестики-нолики
Имя входного файла:
Имя выходного файла:
Ограничение по времени:
Ограничение по памяти:
стандартный поток ввода
стандартный поток вывода
2 секунды
256 мегабайт
Петя и Вася любят играть в крестики-нолики до пяти в ряд. Однажды они нашли листок, на
котором проходила одна из их старых партий.
Напомним кратко правила игры в крестики-нолики до пяти в ряд. Игроки ходят по очереди,
один из них ставит в любую свободную клетку поля крестик, второй — нолик. Партия завершается,
когда после очередного хода существует горизонтальная, вертикальная или диагональная линия из
пяти крестиков или ноликов.
Петя и Вася решили выяснить, завершилась ли партия на листке, который они нашли. К сожалению, часть листка оказалась повреждена, поэтому достоверно выяснить это нельзя. Ребята
считают, что партия точно завершилась, если на листке есть пять подряд крестиков или ноликов
по вертикали, горизонтали или диагонали. Помогите им выяснить, точно ли завершилась партия.
Формат входных данных
В первой строке ввода заданы числа n и m (1 ≤ n, m ≤ 1000) — размеры игрового поля.
В следующих n строках записано по m символов «X», «O» или «.», которые означают, что в
данной клетке стоит крестик, нолик, либо она пуста, соответственно. Обращаем ваше внимание, что
«X» и «O» — заглавные буквы латинского алфавита.
Формат выходных данных
Выведите Yes, если партия точно завершилась, и No, если нет.
Пример
ввод
5 6
.OXOXO
OXX.O.
XXOOXX
..O..O
OOXX.X
вывод
Yes
Страница 2 из 5
Кубок «ОАО НПО «Аврора» по программированию 2015
Отборочное соревнование, 16 мая 2015 года
Задача C. Ход конём
Имя входного файла:
Имя выходного файла:
Ограничение по времени:
Ограничение по памяти:
стандартный поток ввода
стандартный поток вывода
2 секунды
256 мегабайт
Дана прямоугольная доска размером n × m (n строк и m столбцов). В левом верхнем углу
находится шахматный конь, которого необходимо переместить в правый нижний угол доски.
При этом конь может ходить следующим образом:
Необходимо определить, сколько существует различных маршрутов, ведущих из левого верхнего
в правый нижний угол.
Формат входных данных
В первой строке ввода находятся два натуральных числа n и m (1 ≤ n, m ≤ 15).
Формат выходных данных
Выведите число способов добраться конём до правого нижнего угла доски.
Пример
ввод
4 4
15 14
вывод
2
7884330
Страница 3 из 5
Кубок «ОАО НПО «Аврора» по программированию 2015
Отборочное соревнование, 16 мая 2015 года
Задача D. Задача про бассейны
Имя входного файла:
Имя выходного файла:
Ограничение по времени:
Ограничение по памяти:
стандартный поток ввода
стандартный поток вывода
2 секунды
256 мегабайт
В ряд расположены n бассейнов, i-й бассейн исходно содержит ai литров воды. Через отверстие
в дне бассейна вода постепенно вытекает, отверстие в i-м бассейне таково, что пока вода в нем не
кончилась, за минуту из него вытекает bi литров воды.
Требуется для каждого целого i от 0 до t выяснить, сколько воды будет суммарно во всех бассейнах через i минут после начала процесса.
Формат входных данных
В первой строке ввода даны два числа n и t (1 ≤ n ≤ 105 , 1 ≤ t ≤ 105 ) — количество бассейнов
и период времени, для которого требуется вывести информацию.
В следующих n строках описаны бассейны: каждая из этих строк содержит по два числа ai и bi
(0 ≤ ai ≤ 109 , 0 ≤ bi ≤ 109 ).
Формат выходных данных
В качестве ответа выведите t + 1 целое число: сколько воды будет суммарно во всех бассейнах
через 0, 1, 2, ..., t минут после начала процесса.
Пример
ввод
6 6
12 2
10 3
3 1
5 4
7 2
9 1
вывод
46
33
23
14
9
6
3
Страница 4 из 5
Кубок «ОАО НПО «Аврора» по программированию 2015
Отборочное соревнование, 16 мая 2015 года
Задача E. Передача сообщения
Имя входного файла:
Имя выходного файла:
Ограничение по времени:
Ограничение по памяти:
стандартный поток ввода
стандартный поток вывода
2 секунды
256 мегабайт
Штирлиц отсылает в штаб секретное сообщение, которое является палиндромом. Но сообщение
нельзя отсылать просто так — его определенно перехватит Мюллер. Поэтому Штирлиц решил зашифровать своё сообщение. Шифрование происходит следующим образом: сначала он добавляет
в произвольные места сообщения не более k символов. Затем он может дописать еще несколько
символов в начало и в конец сообщения.
Таким образом, исходное сообщение можно получить следующим образом: взять некоторую подстроку нового сообщения и удалить из неё не более k символов.
Когда штаб получил письмо с зашифрованным сообщением, он не смог однозначно определить,
что хотел передать Штирлиц. Поэтому в штабе хотят найти самую длинную подстроку, являющуюся
кандидатом на сообщение Штирлица — подстроку, из которой можно удалить не больше k символов
так, чтобы она стала палиндромом. Число k в штабе известно.
Помогите штабу решить эту непростую задачу.
Формат входных данных
В первой строке дано число k (0 ≤ k ≤ 5000) — максимальное количество символов, которое
было вставлено на первом этапе шифрования.
Во второй строке дана строка s (1 ≤ |s| ≤ 5000) — сообщение, которое получили в штабе.
Сообщение состоит только из строчных букв латинского алфавита.
Формат выходных данных
Выведите через пробел два числа l и r (1 ≤ l ≤ r ≤ длины s), разделенные пробелом — левый
и правый конец самой длинной подстроки, из которой можно удалить не более k символов, чтобы
она стала палиндромом.
Если возможных ответов несколько, выведите тот, у которого левый конец минимален.
Пример
ввод
0
abac
1
bacb
вывод
1 3
1 4
Комментарий
В первом примере подстрока «aba» является палиндромом. Во втором примере можно взять всю
строку «bacb»: из нее можно удалить символ «c» и получившаяся строка «bab» будет палиндромом.
Страница 5 из 5
Download