Задача A. Королевский пароль

advertisement
Задача A. Королевский пароль
Имя входного файла:
Имя выходного файла:
Ограничение по времени:
Ограничение по памяти:
input.txt
output.txt
2 секунды
64 мегабайт
У Сэра Лавеласа имеется новая модель суперкомпьютера Никс, который установлен в его семейном замке.
Клавиатура у этого компьютера сконструирована, как квадрат с N рядами, и N клавишами в каждом ряду. Сэр
Лавелас использует этот компьютер для разработки суперсекретного оружия.
Наша разведка дала задание хакеру Васе узнать детали этого проекта. Он уже получил приглашение на
ежегодную вечеринку, посвящённую Дню Святого Валентина, которая традиционно проводится у Сэра Лавеласа
дома.
Вася знает, что Сэр Лавелас всегда устанавливает пароль из уважения к своим предкам, которые правили
королевством в средние века. Его пароль может быть набран только перемещениями по клавиатуре, которые
удовлетворяют правилам движения шахматного коня.
Теперь Васе нужно оценить время для выполнения плана операции. Чтобы сделать это, ему необходимо
знать число возможных паролей, которые Сэр Лавелас может установить. Напишите программу, чтобы получить
ответ.
Формат входных данных
Входной файл содержит два числа N и L, где L+1 – длина пароля (длину пароля узнала предыдущая
спецагентша Оля) 1  N  10000, а 1  L  12 .
Формат выходных данных
В выходной файл выведите одно число, которое является количеством возможных паролей.
Примеры
input.txt
output.txt
64
3 3
Задача B. Шестиугольник.
Имя входного файла:
Имя выходного файла:
Ограничение по времени:
Ограничение по памяти:
input.txt
output.txt
1 секунда
700 мегабайт
Правильный шестиугольник с длиной стороны N разбит на 6N
2
треугольников.
Ваша задача найти число способов покрыть шестиугольник, с помощью ромбиков – фигуры, равной
объединению двух треугольников, имеющих общую сторону.
Каждый ромбик должен покрывать в точности два треугольника, при этом все треугольники должны быть
покрыты. И ни какой треугольник не может быть покрыт больше чем одним ромбиком.
1
Найдите число способов покрыть шестиугольник таким способом. Например, число способов покрыть
шестиугольник со стороной длины 1 равно двум.
Формат входных данных
Во входном файле записано одно число N ( 1  N
 7 ) - длина стороны шестиугольника.
Формат выходных данных
Выведите в выходной файл число способов покрыть шестиугольник ромбиками.
Примеры
input.txt
output.txt
2
20
1
2
Задача С. Последовательность Фибоначчи
input.txt
Имя входного файла:
output.txt
Имя выходного файла:
Ограничение по времени: 1 секунда
Ограничение по памяти: 64 мегабайт
Последовательность целых чисел a1 , a2 ,..., a N называется Фибоначчиевой последовательностью,
если
ai  ai1  ai2 для всех i= 3, 4,…, N.
Дана последовательность целых чисел
подпоследовательность.
c1 , c2 ,..., cM . Вы должны найти наибольшую Фибоначчиеву
Формат входных данных
В первой строке входного файла содержится M ( 1  M
 3000 ). Следующая строка содержит M целых
9
чисел, каждое из которых по модулю не превосходит 10 .
Формат выходных данных
В первой строке выходного файла выведите максимальную длину Фибоначчиевой подпоследовательности
данной последовательности. Во второй строке выведите саму подпоследовательность.
Примеры
input.txt
10
1 1 3 –1 2 0 5 –1 –1 8
output.txt
5
1 –1 0 –1 -1
2
Задача D. Черепашьи приколы
Имя входного файла:
Имя выходного файла:
Ограничение по времени:
Ограничение по памяти:
input.txt
output.txt
1 секунда
64 мегабайт
Существует известная загадка для детей:
Три черепахи ползут по дороге. Одна черепаха сказала: “Две черепахи впереди меня”. Другая сказала: “Две
черепахи позади меня”. Третья черепаха сказала: “Две черепахи впереди меня, и две черепахи позади меня”. Как
такое может быть?
Ответ – третья черепаха лжёт 
Итак, в этой задаче N черепах ползут вдоль дороги. Часть из них ползёт в группах, то есть они не видят
членов своей группы ни впереди, ни сзади. Каждая из черепах делает утверждение вида: “ ai черепах ползёт
впереди меня, и
bi черепах ползёт позади меня”. Ваша задача определить минимально возможное число черепах,
которые лгут.
Формализуем задачу. Пусть черепаха с i-м номером имеет координату
xi . Некоторые черепахи могут иметь
одинаковые координаты. Черепаха говорит правду тогда и только тогда, когда ai равно числу черепах с номерами j
таких, что x j  xi , а bi - числу черепах с номерами j таких, что x j  xi . В противном случае, черепаха с номером
i лжет.
Формат входных данных
Первая строка входного файла содержит целое число N (1 
чисел
N  1000). Следующие N строк содержат пары
ai , bi ( 0  ai , bi  1000 ).
Формат выходных данных
В выходной файл выведите целое число M - минимальное число черепах, которые должны лгать. Затем
выведите M целых чисел - номера черепах, которые обманывают. Номера черепах можно выводить в любом
порядке. Если существуют различные множества врущих черепах, то выведите любое из них.
Примеры
input.txt
3
2
0
2
5
0
0
2
1
4
output.txt
1 3
0
2
2
2 1 4
2
3
1
2
0
3
Задача E. Наибольшая общая возрастающая подпоследовательность.
Имя входного файла:
Имя выходного файла:
Ограничение по времени:
Ограничение по памяти:
input.txt
Output.txt
1 секунда
64 мегабайт
Даны две последовательности целых чисел. Напишите программу, которая находит общую для них
возрастающую подпоследовательность наибольшей длины.
Последовательность
s1 , s2 ,..., sN длины N называется возрастающей подпоследовательностью
последовательности a1 , a2 ,..., aM длины M, если существуют 1  i1  i2  ...  iN  M такие, что ai  s j для всех
j
1  j  N , и s j  s j 1 для всех 1  j  N .
Формат входных данных
Во входном файле записаны две последовательности. Каждая последовательность описывается двумя
строками следующим образом: в первой строке идет длина последовательности M ( 1  M  500 ), во второй идут
M целых чисел
ai (  231  ai  231 ) – члены последовательности.
Формат выходных данных
В первой строке выходного файла выведите N - длину наибольшей возрастающей подпоследовательности
входных последовательностей. Во второй строке выведите саму подпоследовательность.
Примеры
input.txt
5
1 4 2 5 –12
4
-12 1 2 4
output.txt
2
1 4
4
Download