Приморская краевая олимпиада по школьников по информатике Задача №1 «Кладотолкатель» Входной файл: INPUT.TXT Выходной файл: OUTPUT.TXT Время на тест: 4 секунды Лабиринт задан матрицей размером W на H клеток, каждая ячейка которой может либо быть пустой, либо содержать камень, либо клад. В лабиринте имеется ровно один клад. В одной из пустых ячеек находится кладоискатель. Кладоискатель может передвигаться в соседнюю по горизонтали или вертикали пустую ячейку, а также передвигать клад. Для этого он должен встать в соседнюю с кладом ячейку и толкнуть его. Клад передвинется на соседнюю ячейку в направлении толчка, а кладоискатель переместится в ячейку, где только что находился клад. Требуется определить последовательность передвижений кладоискателя, с помощью которой клад можно передвинуть к выходу. Так как клад очень тяжелый, количество толчков должно быть минимально. При наличии нескольких решений программа должна выводить то из них, которое требует наименьшего количества перемещений. Ограничения 1 ≤ W, H ≤ 30 Формат входного и выходного файлов Первая строка входного файла содержит числа W H. Следующие H строк состоят из W символов каждая и описывают ячейки лабиринта. Пустая ячейка — «.» (ASCII 46), камень — латинская буква «X», кладоискатель — «Y», клад — латинская буква «B», выход — латинская буква «Т». Если решения не существует, то выходной файл должен содержать слово «NO», иначе — последовательность латинских букв N, S, W, E, обозначающих передвижение кладоискателя на север, юг, запад и восток соответственно. Пример входного файла 3 3 ..Y .B. ТХХ Пример выходного файла SWNWS Разбалловка Решение для W = 1 или H = 1 Решение для лабиринта без стен Решение для общего случая Интерфейс Итого 4 5 38 3 50 балла баллов баллов балла баллов Приморская краевая олимпиада по школьников по информатике Задача №2 «Палиндромическое вычеркивание» Входной файл: INPUT.TXT Выходной файл: OUTPUT.TXT Время на тест: 2 секунды Непустая строка называется палиндромом, если она одинаково читается слева направо и справа налево. Задана строка, состоящая из N прописных латинских букв. Если вычеркнуть из этой строки некоторые символы, можно получить строку-палиндром. Например, из строки BLOB можно получить палиндромы семью способами: BLOB, BLOB, BLOB, BLOB, BLOB, BLOB, BLOB. Требуется определить, сколько существует способов вычеркивания из заданной строки некоторого (возможно, пустого) набора символов так, чтобы осталась строкапалиндром. Способы, отличающиеся порядком вычеркивания символов, считаются одинаковыми. Ограничения 1 ≤ N ≤ 60 Формат входного и выходного файлов Входной файл содержит исходную строку. Выходной файл должен содержать найденное число способов. Пример входного файла 1 BAOBAB Пример выходного файла 1 22 Пример входного файла 2 Z Пример выходного файла 2 1 Разбалловка Решение для 1 ≤ N ≤ 15 Решение для 16 ≤ N ≤ 31 Решение для 32 ≤ N ≤ 60 Интерфейс Итого 5 12 20 3 40 балла баллов баллов балла баллов Приморская краевая олимпиада по школьников по информатике Задача №3 «Broken NICs»1 Входной файл: INPUT.TXT Выходной файл: OUTPUT.TXT Время на тест: 2 секунды Имеется N сетевых карт, часть из которых, возможно, не работает. Работоспособность карт проверяют следующим образом: выбирают пару карт и устанавливают их в два компьютера, затем пытаются установить между ними связь. Если связь установлена, то обе проверяемые сетевые карты работоспособны. В противном случае либо одна, либо обе карты не работают. Требуется по данным о результатах K проверок определить состояние всех карт, для которых это возможно. Ограничения 2 ≤ N ≤ 1000, 0 ≤ K ≤ 10000 Формат входного и выходного файлов Входной файл содержит числа N K, за которыми следует K троек чисел ai bi vi, где ai bi — номера проверяемых сетевых карт, vi равно 1, если установить соединение удалось и 0 в противном случае. Выходной файл должен содержать N чисел, где i-е число равно 0, если i-я карта неисправна, 1, если исправна, и 2, если исправность карты определить невозможно. Пример входного файла 4 1 3 3 3 2 1 1 0 4 0 Пример выходного файла 1 1 0 2 Разбалловка Решение задачи Интерфейс Итого 1 7 баллов 3 балла 10 баллов NIC (Network Interface Card) — сетевая карта (англ.) Приморская краевая олимпиада по школьников по информатике Задача №4 «Фотограф и замок» Входной файл: INPUT.TXT Выходной файл: OUTPUT.TXT Время на тест: 2 секунды Старинный замок имеет в (0; 0) (58; 1) (55; 5) плане форму выпуклого N(58; 6) угольника. Замок находится внутри прямоугольного участка, имеющего форму выпуклого M-угольника, огороженного высоким забором (замок не соприкасается с забором). Фотограф желает сделать несколько фотографий замка таким образом, чтобы каждая из стен была (68; 38) (1; 36) видна хотя бы на одной (62; 41) фотографии. Позиция для съёмки (4; 52) (70; 41) определяется точкой, находящейся (9; 49) внутри участка, но снаружи замка. (72; 54) (4; 52) Считается, что стена видна из данной позиции, если отрезок, соединяющий её с любой точкой стены, не пересекает других стен. Позиция не может лежать на прямой, содержащей стену. Требуется определить минимальное количество позиций для фотографии, которое придется сделать фотографу. Ограничения 3 ≤ N, M ≤ 100 Все координаты представляют собой целые числа в диапазоне от 0 до 10000. Формат входного и выходного файлов Входной файл содержит числа N M x1 y1 … xN yN u1 w1 … uM wM, где xi yi — координаты вершин замка, ui wi — координаты вершин забора. Вершины перечислены в порядке обхода по часовой стрелке. Выходной файл должен содержать единственное число — минимальное количество фотографий. Пример входного файла 7 4 1 36 55 5 58 6 0 0 72 0 72 54 0 54 68 38 62 41 9 49 Пример выходного файла 3 Разбалловка Решение задачи для N = 3 Решение задачи для общего случая Интерфейс Итого 2 55 3 60 балла баллов балла баллов 4 52 Приморская краевая олимпиада по школьников по информатике Задача №5 «Игра в жадность» Входной файл: INPUT.TXT Выходной файл: OUTPUT.TXT Время на тест: 2 секунды Два игрока играют в следующую игру: они выложили на столе в ряд слева направо N пачек денег, содержащих А1 … АN рублей. Игроки ходят по очереди. На каждом ходе игрок берет слева несколько пачек (не меньше одной, но не больше, чем перед этим взял его соперник). Первый игрок своим первым ходом берет не более K пачек (K ≤ N). Игра заканчивается, когда все деньги разобраны. Требуется вычислить максимальную сумму, которую может получить первый участник при наилучшей игре второго. Ограничения 1 ≤ N ≤ 180, 1 ≤ K ≤ 80, сумма каждой пачке — целое число в диапазоне от 1 до 20000. Формат входного и выходного файлов Во входном файле содержатся числа N K А1 … АN. Выходной файл должен содержать единственное число — максимальную сумму, которую может получить первый игрок. Пример INPUT.TXT 3 3 4 9 1 4 3 1 2 2 7 5 2 3 4 8 1 7 OUTPUT.TXT 14 5 18 Разбалловка Решение для K = 1 Решение для 1 ≤ N ≤ 10 Решение для общего случая Интерфейс Итого 3 10 24 3 40 балла баллов балла балла баллов