2014-2015 Командная олимпиада Казахстанского филиала МГУ (зимний тур)
A. Automultiplicative numbers
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вадим любит делать всё заранее. Например, к зимней сессии он подготовился ещё в сентябре. А сегодня он уже предусмотрительно хочет выбрать новогодний подарок для Маши. По мнению Вадима, лучший подарок — это множество чисел, каждое из которых равно произведению всех своих цифр в десятичной записи. Он даже придумал специальное название для них — «автомультипликативные» числа. Но Маше нравятся только числа, которые лежат в пределах от $$$A$$$ до $$$B$$$. Вадим уже понял, что найти все автомультипликативные числа из заданного интервала не так просто, если Маша выберет большой интервал. Поэтому дальновидный Вадим уже сейчас хочет знать, какое наибольшее количество различных чисел, которые понравятся Маше, он сможет подарить?

Входные данные

Два целых числа $$$A$$$ и $$$B$$$ ($$$1 \le A \le B \le 10^{18}$$$).

Выходные данные

Одно целое число — количество автомультипликативных чисел в диапазоне $$$[A, B]$$$.

Пример
Входные данные
9 11
Выходные данные
1
Примечание

$$$9 = 9$$$ — автомультипликативное; $$$1 \cdot 0 \ne 10$$$ — не автомультипликативное; $$$1 \cdot 1 \ne 11$$$ — не автомультипликативное.

B. BNF
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Мирас пишет олимпиаду по программированию, и он уже дошёл до задачи $$$B$$$! Но продолжить ему не дают первокурсники, которые пришли к нему просить помощи с упражнением на тему «Форма Бэкуса–Наура» (Backus–Naur Form). Вот условие упражнения:

Дана формула, описывающая множество строк в алфавите $$$\{a, b, c\}$$$: $$$$$$ \lt string \gt ::= \{a | b\} c \{a | b\}$$$$$$ Подсчитать количество строк длины $$$n$$$ в данном множестве слов.

Мирас согласился помочь и уже объяснил условие задачи:

  1. Запись $$$\{word\}$$$ обозначает конкатенацию (присоединение) нескольких строк $$$word$$$, то есть $$$$$$\{word\} = word^k,$$$$$$ где $$$k = 0, 1, \dots$$$. Например, $$$\{ab\}$$$ обозначает слова: пустое, $$$ab$$$, $$$abab$$$, $$$ababab$$$ и т.д.
  2. Запись $$$word_1 | word_2$$$ обозначает альтернативу из двух вариантов: $$$word_1$$$ или $$$word_2$$$. Например, $$$ab | ba$$$ обозначает одно из двух слов: $$$ab$$$ или $$$ba$$$.

В частности, заданное множество содержит строку $$$baacab$$$. Помогите первокурсникам решить их упражнение, чтобы Мирас не отвлекался и всё-таки сдал задачу $$$B$$$!

Входные данные

Одно целое число $$$N$$$ — длина строки ($$$1 \le N \le {10}^{18}$$$).

Выходные данные

Одно целое число — количество искомых строк длины $$$N$$$. Так как ответ может быть очень большим, выведите его по модулю $$$10^9+7$$$.

Примеры
Входные данные
1
Выходные данные
1
Входные данные
4
Выходные данные
32
Примечание

Четыре строки из второго примера выглядят так: $$$ac$$$, $$$bc$$$, $$$ca$$$, $$$cb$$$.

C. Cheer up!
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Денис решил на один день отказаться от использования всех своих электронных устройств. Не удивительно, что ему сегодня так грустно. Из всех развлечений в его опустевшей комнате остался только один игральный кубик, да и тот без надписей. Денис написал на каждой грани по одному числу от 1 до 9 и начал кидать кубик. Утешением для Дениса может послужить только выпадение его любимого числа $$$s$$$ по сумме всех бросков. Найдите вероятность того, что Денис станет чуточку веселее после $$$n$$$-го броска кубика в этот день проверки силы воли.

Входные данные

В первой строке шесть целых чисел $$$x_1$$$, $$$x_2$$$, $$$x_3$$$, $$$x_4$$$, $$$x_5$$$, $$$x_6$$$ — числа на гранях кубика ($$$1 \le x_i \le 9$$$, $$$i = 1, \dots, 6$$$). Во второй строке два целых числа $$$n$$$ — количество бросков ($$$1 \le n \le 100$$$) и $$$s$$$ — желаемая сумма ($$$1 \le s \le 1000$$$).

Выходные данные

Вероятность того, что накопленная сумма после $$$n$$$ бросков будет равна $$$s$$$ (ответ вывести с абсолютной погрешностью не более 0.001).

Примеры
Входные данные
1 1 1 1 1 1
3 3
Выходные данные
1.0000000000
Входные данные
1 1 1 1 1 1
3 4
Выходные данные
0.0000000000
Входные данные
1 2 3 4 5 6
2 7
Выходные данные
0.1666666667
Примечание

Кубик в первом примере при каждом броске выдаёт единицу, поэтому сумма после трёх бросков всегда будет равна трём.

D. Decks
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Ануар считает себя настоящим фокусником и поэтому всегда носит с собой несколько колод карт. Однако это не простые игральные карты: на каждой карте великого иллюзиониста написана одна строчная буква английского алфавита. Прямо сейчас Ануар показывает Андрею свой самый популярный фокус с телепатией:

  1. Ануар записывает магическое слово на бумажке;
  2. Андрей выбирает любую из колод;
  3. Ануар вытаскивает некоторые карты из выбранной колоды и составляет магическое слово, которое было записано на бумажке.
Андрей, конечно же, в чудеса и в телепатию не верит, так что он и сам может назвать это магическое слово и разоблачить Ануара, если посмотрит на все колоды сразу. Вот только он должен учитывать, что Ануар подобрал слово максимально возможной длины для придания пущего эффекта своему фокусу.
Входные данные

В первой строке целое число $$$k$$$ — количество колод ($$$1 \le k \le 100$$$). В следующих $$$k$$$ строках описания этих колод; каждое из таких описаний состоит из всех букв, содержащихся в колоде, и оканчивается точкой (в каждой колоде — от 1 до 100 карт).

Выходные данные

Слово максимальной длины, которое можно составить из любой колоды. Если таких слов существует несколько, то вывести лексикографически минимальное (слово, которое стоит раньше по алфавиту).

Пример
Входные данные
3
aabce.
abca.
acda.
Выходные данные
aac.
Примечание

В данном примере магическое слово не может быть длиннее трёх символов; а вот из допустимых слов длины три aac, aca, caa лексикографически минимальным является aac. Не забудьте поставить точку после ответа. В частности, если ответом будет являться пустая строка, Вы должны просто вывести точку.

E. Ellipse
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Асылжана есть плоская эллиптическая тарелка с полуосями $$$a$$$ и $$$b$$$ неизвестного происхождения. Недавно его посетила гениальная мысль вырезать из своей тарелки новую, в форме выпуклого $$$n$$$-угольника. Естественно, он хочет сделать это так, чтобы новая тарелка имела максимальную площадь (чтобы вмещала как можно больше еды). Найдите площадь новой тарелки Асылжана.

Входные данные

На первой строке два целых числа $$$a$$$, $$$b$$$, на второй строке целое число $$$n$$$, где $$$a$$$, $$$b$$$ — полуоси старой, эллиптической тарелки, $$$n$$$ — число вершин новой, полигональной тарелки ($$$1 \le a \le 100$$$, $$$1 \le b \le 100$$$, $$$3 \le n \le 10$$$).

Выходные данные

Одно вещественное число — площадь новой тарелки (ответ вывести с абсолютной погрешностью не более $$$10^{-3}$$$).

Примеры
Входные данные
1 1
4
Выходные данные
2.0000000000
Входные данные
1 4
3
Выходные данные
5.1961524227

F. Flip
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

учадазьтишертежомопенотэон,КМВететьлукафанястичувалсидалВ.

Входные данные

Строка из строчных букв английского алфавита, оканчивающаяся точкой (длина строки без точки — от 1 до 100 символов).

Выходные данные

Целое неотрицательное число — ответ на задачу.

Примеры
Входные данные
toreverse.
Выходные данные
5
Входные данные
reverse.
Выходные данные
1

G. GOR
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Адиль, как полагается нонконформисту, отрицает существование всех известных бинарных операторов (даже $$$\mathbb{XOR}$$$!) и предпочитает пользоваться своими собственными. Среди них есть ещё не известный в широких кругах оператор $$$\mathbb{GOR}$$$, с которым он знакомит всех, кто попадается ему на глаза. Со слов автора, $$$z = x \ \mathbb{GOR} \ y$$$ действует так: $$$$$$z_k = (x_k + y_k) \mod g, $$$$$$ где $$$p_k$$$ — $$$k$$$-я справа цифра в записи числа $$$p$$$ в системе счисления с основанием $$$g$$$. Чтобы убедить весь мир в значимости придуманного им оператора, Адиль готов показать, что может за считанные секунды высчитать $$$\mathbb{GOR}$$$ всех чисел от $$$A$$$ до $$$B$$$. Вот только он оставил свою программу дома, и торжественная презентация под угрозой срыва. Вся надежда только на Вас! Вы ведь сможете спасти положение и написать эту программу?

Входные данные

На первой строке даны целые числа $$$A$$$ и $$$B$$$ — границы оперирования ($$$1 \le A \le B \le 10^{18}$$$). На второй строке дано число $$$g$$$ — основание системы оперирования ($$$2 \le g \le 10$$$).

Выходные данные

Целое положительное число — значение выражения: $$$A \ \mathbb{GOR} \ (A+1) \ \mathbb{GOR} \ (A+2) \ \mathbb{GOR} \ \dots \ \mathbb{GOR} \ B$$$.

Примеры
Входные данные
1 4
2
Выходные данные
4
Входные данные
4 9
3
Выходные данные
15
Входные данные
8 11
10
Выходные данные
28
Примечание

В примере 3 при $$$g = 10$$$: $$$8 \ \mathbb{GOR} \ 9 \ \mathbb{GOR} \ 10 \ \mathbb{GOR} \ 11 = 7 \ \mathbb{GOR} \ 10 \ \mathbb{GOR} \ 11 = 17 \ \mathbb{GOR} \ 11 = 28$$$.

H. Holes
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Надира в своих снах часто бывала в Стране Чудес. Один раз она даже обнаружила себя в каком-то лабиринте, а если точнее, то в северо-западном углу какого-то прямоугольного лабиринта, разделённого на квадратные ячейки. Оказавшаяся рядом Гусеница объяснила, что выход из лабиринта находится в юго-восточном углу, а сама Надира для достижения этого выхода может пользоваться системой кроличьих нор. Система довольно проста: запрыгивая в один конец норы, Надира вылетает из другого конца той же норы. При этом, попадая на клетку с кроличьей норой, она не обязана туда запрыгивать и может пройти мимо. Скажите, получилось ли у Надиры дойти до выхода или она проснулась, так и не узнав, что находится за лабиринтом?

Входные данные

В первой строке даны два целых числа $$$m$$$, $$$n$$$ — размеры лабиринта ($$$1 \le m \le 100$$$, $$$1 \le n \le 100$$$). В следующих $$$m$$$ строках по $$$n$$$ символов в каждой — описание лабиринта: '.' — свободная клетка, '#' — стена, заглавная латинская буква — вход в кроличью нору. Гарантируется, что верхний левый и нижний правый углы свободны и что каждая заглавная латинская буква либо не встречается вовсе, либо встречается ровно два раза.

Выходные данные

Строка 'YES' (без кавычек), если из левого верхнего угла можно дойти до нижнего правого, и 'NO' в противном случае.

Примеры
Входные данные
2 3
.#.
.#.
Выходные данные
NO
Входные данные
4 4
.#CD
D#..
####
C...
Выходные данные
YES
Входные данные
4 4
.#A.
A#..
####
....
Выходные данные
NO
Примечание

Во втором примере последовательность действий для достижения выхода такова: один шаг на юг, запрыгиваем в нору $$$D$$$, вылетаем с другого конца, один шаг на запад, запрыгиваем в нору C, вылетаем с другого конца, идём на восток до выхода. В третьем примере южная комната лабиринта недостижима.

I. Interesting permutation
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Ильи и Вики очень разные вкусы. Вика любит перестановки. То есть такие наборы чисел ($$$a_0$$$, $$$a_1$$$, $$$a_2$$$, $$$\dots$$$, $$$a_n$$$), которые являются перестановками чисел (0, 1, 2, $$$\dots$$$, $$$n$$$). Илья же в последнее время в восторге от полных квадратов. Поэтому набор ему интересен, только если $$$a_k+k$$$ является точным квадрат целого числа для любого $$$k = 0, 1, 2, \dots, n$$$. Набор ($$$a_0, a_1, a_2, \dots, a_n$$$), которые понравятся им обоим, Вика и Илья решили называть интересной перестановкой. Теперь они очень хотят увидеть хотя бы одну интересную перестановку для заданного $$$n$$$.

Входные данные

Одно целое число $$$n$$$ ($$$1 \le n \le 30000$$$).

Выходные данные

Любая последовательность из ($$$n+1$$$) числа, образующая интересную перестановку. Ответ гарантировано существует.

Примеры
Входные данные
3
Выходные данные
0 3 2 1 
Входные данные
8
Выходные данные
1 0 7 6 5 4 3 2 8
Примечание

В первом примере: $$$0 + 0 = 0^2$$$, $$$3 + 1 = 2^2$$$, $$$2 + 2 = 2^2$$$, $$$1 + 3 = 2^2$$$.