10-й открытый турнир по программированию в Абакане
A. Нажмите Shift
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На стандартной QWERTY-клавиатуре присутствует ряд из цифр от 0 до 9, находящийся над рядами букв. На этих клавишах помимо цифр расположены специальные символы, которые можно написать, нажав соответствующую клавишу с зажатой клавишей Shift.

Если по какой-либо причине у вас отсутствует клавиатура, вот этот ряд с соответствующими символами:

1234567890
!@#$%^{}&*()

Напишите программу, определяющую символ, который будет напечатан, если нажать Shift и определённую цифру.

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

В единственной строке ввода содержится одно целое число от 0 до 9 — нажатая цифра.

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

Выведите нужный символ.

Пример
Входные данные
1
Выходные данные
!

B. Различные турниры
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Одним из способов проведения какого-либо турнира является формат playoff. В турнире участвуют N = 2k команд. В самом начале команды разбиваются на пары, победители в каждой паре проходят дальше по турнирной сетке, играя по аналогичным правилам для вдвое меньшего количества игроков, а проигравшие занимают низ итоговой таблицы. Заметим, что победитель последней встречи является победителем всего турнира.

Одним из минусов этой системы является неполная объективность результатов: не все команды играют между собой для определения чемпиона. Для того, чтобы занять первое место, нужно выиграть всего лишь k встреч. Из-за этого высока непредсказуемость результатов и всё зачастую зависит от изначального расположения команд на старте турнира.

Вы работаете в организации, которая собирается провести крупный турнир. Начальство хочет выбрать стартовую расстановку лично. Для удобства, названия команд заменены на уникальный номер от 1 до N, а расстановка записывается как последовательность этих чисел. Специальный менеджер уже подготовил M вариантов расстановок, но за миг до то того, как предоставить их для рассмотрения обнаружил, что некоторые из них являются эквивалентными. Допустим, мы будем знать исход встречи для каждой возможной пары команд. Тогда, две стартовые расстановки называются эквивалентными, если итоговые таблицы этих сеток совпадут. Матчи, сыгранные в этих сетках, будут одни и те же, возможно, в другом порядке.

Чтобы не нагружать начальство, менеджер попросил вас о помощи. По заданному списку расстановок посчитайте количество различных из них, то есть тех, которые не являются эквивалентными. Если вы сделаете это быстро, вам будет обеспечено место в первых рядах до конца турнира.

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

В первой строке содержатся два натуральных числа N и M (1 ≤ N × M ≤ 219; N является степенью числа 2).

Следующие M строк содержат расстановки, в каждой строке содержится по N различных чисел от 1 до N.

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

Выведите в единственную строку количество различных предложенных расстановок.

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

В первом примере эквивалентными являются три расстановки [1, 2, 3, 4], [4, 3, 2, 1] и [4, 3, 1, 2], а также две [1, 4, 2, 3], [3, 2, 1, 4].

C. Похожие исполнители
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Поликарп недавно зарегистрировался в музыкальном сервисе «first.am», который помогает узнать о новой музыке, основываясь на том, что слушает пользователь.

Пользуясь сервисом, Поликарп обнаружил, что предлагаемые песни и исполнители никак не похожи на то, что он любит. Проведя своё расследование, он узнал, что оказывается, сервис считает двух исполнителей эквивалентными тогда и только тогда, если их названия содержат одинаковую подпоследовательность подряд идущих L символов, содержащих только буквы и/или цифры. Причём, при сравнении букв игнорируется регистр.

Поликарп решил написать письмо в службу поддержки и объяснить, что такой принцип эквивалентности неверный, ибо если исполнитель A эквивалентен исполнителю B, а B эквивалентен C, то это не всегда будет означать, что A эквивалентен C.

Для этого Поликарпу нужна помощь. По заданному списку исполнителей P посчитайте количество пар таких исполнителей Pi и Pj (1 ≤ i < j ≤ N), что они не эквивалентны, но при этом найдётся такое k, что исполнитель Pi эквивалентен Pk и Pj эквивалентен Pk.

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

Первая строка содержит два целых числа N и L (1 ≤ N, L ≤ 50).

Следующие N строк содержат названия исполнителей Pi, состоящие из символов с ASCII-кодами от 32 до 126 включительно и имеющие длину от 1 до 50.

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

В единственную строку выведите количество пар исполнителей, которые интересуют Поликарпа.

Пример
Входные данные
3 5
The Stone Roses
Rolling Stones
Guns N'Roses
Выходные данные
1

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

В торрент-трекере качается файл, который раздают N сидеров. Файл поделён на M равных фрагментов. Для каждого сидера известно какие фрагменты у него доступны.

Чтобы скачать файл, нужно скачать все фрагменты. Канал скачивания имеет неограниченную скорость, фрагменты можно скачивать параллельно у нескольких сидеров. Тем не менее, скорость раздачи у сидеров ограничена: у i-го сидера на раздачу одного фрагмента уходит ti секунд. Сидер может раздавать одновременно только один фрагмент.

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

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

Первая строка содержит два целых числа N и M — количество сидеров и количество фрагментов (1 ≤ N, M ≤ 100).

В следующих N строках содержатся описания сидеров в виде строки ai и целого числа ti (1 ≤ ti ≤ 106). Строка ai содержит N символов и описывает фрагменты: доступные обозначаются символом «+», а недоступные «.».

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

В первую строку выведите минимальное время, необходимое для загрузки всего файла.

Во второй строке выведите M целых чисел si, означающих, что для загрузки всего файла i-ю часть нужно скачивать у сидера с номером si (1 ≤ si ≤ N).

Если вариантов оптимальной загрузки несколько, можно вывести любой.

Примеры
Входные данные
3 4
.+.+ 1
+... 4
+.+. 3
Выходные данные
4
2 1 3 1
Входные данные
2 5
+++++ 2
+++++ 3
Выходные данные
6
1 2 1 2 1
E. Удаляем цифры
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам дано целое положительное число A.

За одно действие вы можете удалить из него одну цифру, если в числе есть хотя бы две цифры.

Вам разрешено делать сколько угодно таких действий. Какое максимальное простое число вы можете получить?

Напомним, что простое число — это число, которое имеет ровно два различных положительных делителя.

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

Первая строка содержит целое число A (0 < A < 1012).

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

Выведите максимальное простое число, которое можно получить из A.

Если такое число получить невозможно, выведите число  - 1.

Примеры
Входные данные
123
Выходные данные
23
Входные данные
321
Выходные данные
31
Входные данные
666
Выходные данные
-1

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

Алиса и Боб зашли в картинную галерею и решили осмотреть местные экспонаты.

Все картины различны, расположены в ряд и пронумерованы от $$$1$$$ до $$$10^{9}$$$.

Алиса и Боб осматривали картины независимо и так получилось, что Алиса захотела приобрести картины с номерами между $$$a$$$ и $$$b$$$ включительно, а Боб картины с номерами между $$$c$$$ и $$$d$$$ включительно.

Сколько картин в итоге приобретут ребята? Если картина приглянулась обоим, то они возьмут только один экземпляр.

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

Первая строка содержит два целых числа $$$a$$$ и $$$b$$$.

Вторая строка содержит два целых числа $$$c$$$ и $$$d$$$.

$$$1 \leq a,b,c,d \leq 10^{9}$$$

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

Выведите количество картин, которые приглянулись обоим ребятам.

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

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

Ваша задача — составить десятичное число длины $$$N$$$ из цифр $$$1$$$, $$$2$$$, $$$3$$$ и $$$4$$$ такое, чтобы каждая из перечисленных цифр встречалась в числе и чтобы полученное число делилось на все эти цифры.

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

В единственной строке содержится целое число $$$N$$$ ($$$1 \leq N \leq 50$$$).

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

Если ответа по вашему мнению не существует, выведите единственное слово «impossible».

Иначе выведите ответ — искомое число. Разрешается выводить любой подходящий ответ.

Пример
Входные данные
1
Выходные данные
impossible