Учебно-тренировочные сборы по информатике, Москва, школа N179 - Тур N6, 28 марта 2006 года Задача A Следующий! Имя входного файла: Имя выходного файла: Максимальное время работы на одном тесте: Максимальный объем используемой памяти: input.txt output.txt 1 секунда 64 мегабайта Отсортируем все числа 0 до N включительно по количеству единиц в двоичном представлении. Таким образом, 4=1002 идет раньше чем 3=112, так как в двоичном представлении имеет на одну единицу меньше. В случае одинакового количества единиц раньше идет то число, которое меньше. Пример сортировки для N=7: 0,1,2,4,3,5,6,7. Даны числа N и K. Требуется найти следующее после K в указанном выше порядке. Входной файл: В первой строке входного файла содержится число N (1 ≤ N < 10100). Вторая строка содержит число K (0 ≤ K ≤ N). Выходной файл: В выходной файл выведите следующее за K число. В случае, если K - последнее число, то выведите -1 Пример: Входной файл Выходной файл 10 8 4 12 -1 11 1 Учебно-тренировочные сборы по информатике, Москва, школа N179 - Тур N6, 28 марта 2006 года Задача B Периметр Имя входного файла: Имя выходного файла: Максимальное время работы на одном тесте: Максимальный объем используемой памяти: input.txt output.txt 1 секунда 64 мегабайта Дано N прямоугольников. Ширина каждого прямоугольника равна 1, а их длины – это нечетные числа без повторений, начиная с 1. Например, если N = 5, то длины прямоугольников – 1, 3, 5, 7, 9. Требуется определить, какой минимальный периметр P может иметь фигура, сложенная из этих прямоугольников. Прямоугольники должны лежать параллельно осям координат и не пересекаться друг с другом. Периметр фигуры будут образовывать участки сторон прямоугольников, которые не соприкасаются со сторонами других прямоугольников. Входной файл: Единственное целое число N, 1 N 4*108 Выходной файл: Вывести одно целое число P. Пример: Входной файл 2 Выходной файл 10 2 Учебно-тренировочные сборы по информатике, Москва, школа N179 - Тур N6, 28 марта 2006 года Задача C Палиндром Имя входного файла: Имя выходного файла: Максимальное время работы на одном тесте: Максимальный объем используемой памяти: input.txt output.txt 1 секунда 64 мегабайта Известно, что палиндромом называется строка, которая одинаково читается как слева направо, так и справа налево. Например, палиндромами являются строки «A», «ABA», «ABBA», а строки «AB», «AAB», «ABAB» палиндромами не являются. Рассмотрим некоторую строку S, состоящую только из латинских букв A и B. Назовем запрещенными все строки длины n, которые состоят также только из букв A и B и содержат S в качестве подстроки. Например, если S = «AB» и n =3, то существует четыре запрещенных строки— «AAB», «ABA», «ABB» и «BAB». Остальные строки будет называть допустимыми. Требуется написать программу, которая для заданной строки S длиной не более пяти символов и заданного числа n определяет количество допустимых строк длины n, которые являются палиндромами. Входной файл: Первая строка входного файла содержит строку S. Длина строки S не превосходит пяти. Вторая строка содержит число n (1 ≤ n ≤ 100). Выходной файл: Выведите в выходной файл одно число — количество строк длины n, которые являются палиндромами и не содержат S в качестве подстроки. Пример: Входной файл Выходной файл AB 2 3 Пояснение к примеру В приведенном примере две искомые строки — «AAA» и «BBB». 3 Учебно-тренировочные сборы по информатике, Москва, школа N179 - Тур N6, 28 марта 2006 года Задача D Жадная волна Имя входного файла: Имя выходного файла: Максимальное время работы на одном тесте: Максимальный объем используемой памяти: input.txt output.txt 0.2 секунды 64 мегабайта Поле размером NxM клеток заполнено целыми числами. Требуется найти на поле клетку, из которой волна, запущенная не более чем на K итераций, покроет площадь с максимальной суммой расположенных на ней чисел. Пример распространения волны для поля размером 5х4. Волна запущена из клетки (3, 3) и была остановлена после трех итераций. Белые клетки – клетки, не покрытые волной, серые и черные – клетки, покрытые волной. Клетки, покрытые волной на последней итерации, отмечены серым цветом. 1 2 3 4 1 2 3 4 1 2 3 4 1 6 7 8 1 6 7 8 1 6 7 8 9 10 11 12 9 10 11 12 9 10 11 12 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 1 2 0 0 1 2 0 0 1 Волна после одной итерации Волна после двух итераций Волна после трех итераций Входной файл: В первой строке входного файла содержатся три целых числа через пробел N, M и K (1 ≤ N, M ≤ 100, 1 ≤ K ≤ N + M). Следующие N строк содержат по M чисел, каждое из которых не превосходит 10000 по абсолютной величине. Выходной файл: Выведите четыре числа R, C, P и S, где R – номер строки, C – номер столбца, из которых следует запустить волну, P – количество итераций распространения волны, S – максимальная сумма чисел, покрытых волной. Если существует несколько вариантов ответа, то вывести любой, в котором число P минимально. 1 ≤ P ≤ K. Пример: Входной файл Выходной файл 5 4 3 3 3 3 66 1 2 3 4 1 6 7 8 9 10 11 12 0 0 0 0 2 0 0 1 4