Каким может быть самый простой способ зашифровать строку? Есть способы, для которых не требуется применять много усилий и обладать специальными познаниями. Одним из таких способов является простой сдвиг букв. Под сдвигом понимается замена буквы на предыдущую в алфавите. Если предыдущей буквы нет, она заменяется на последнюю букву алфавита (в этой задаче мы имеем дело с латинским алфавитом).
Вам прислали секретное сообщение, зашифрованное способом, описанным выше и состоящее из строчных латинских букв. Расшифруйте его и выведите.
В единственной строке ввода содержится строка S длиной от 1 до 100 символов, состоящая из строчных латинских букв.
Выведите расшифрованную строку.
bnqqdbs
correct
По кругу расположены N камней, пронумерованных от 0 до N - 1 в направлении по часовой стрелке. На i-ом камне написано число ai.
Лягушка OSFrog начинает своё путешествие с камня под номером x и хочет совершить h прыжков. На j-ом прыжке (0 ≤ j ≤ h - 1), находясь на i-ом камне, она прыгает на ai камней по или против часовой стрелки. Направление определяется следующим образом: если количество единиц в двоичной записи j чётно, то она прыгает по часовой, иначе — против.
Дано M запросов с изначальным положением лягушки и количеством прыжков, которое она совершит. Определите номер камня, на котором она закончит прыжки.
В первой строке содержится целое число N — количество камней (1 ≤ N ≤ 2 × 105).
Во второй строке содержатся N целых чисел ai, написанных на камнях (0 ≤ ai ≤ 109).
В третьей строке содержится целое число M — количество запросов (1 ≤ M ≤ 2 × 105).
В следующих M строках содержатся запросы в виде пары чисел xk и hk (0 ≤ xk ≤ N - 1;0 ≤ hk ≤ 109).
Для каждого запроса в отдельной строке выведите номер камня, на котором лягушка закончит путешествие.
5
1 4 2 5 3
4
0 1
0 2
2 3
3 100
1
2
2
3
В отделении Битбанка используется электронная очередь. Клиенты банка, пользуясь специальным терминалом, получают талоны в зависимости от выбранной ими операции. После этого номера талонов отображатся на информационном табло, и клиенты проходят к указанной на нём стойке. Завершив дела, клиенты оставляют талоны в специальной корзине у выхода.
Каждый талон содержит следующую информацию: уникальный идентификатор талона, время выдачи и тип операции. Уникальные идентификаторы присваиваются талонам не по порядку, при этом никакие два талона не могут иметь одинаковый идентификатор. Тип операции может быть одним из пяти вариантов: «card», «deposit», «loan», «transfer», «withdrawal». При этом клиенты по операциям «deposit» и «transfer» обслуживаются у стойки номер 1, по операциям «loan» и «withdrawal» — у стойки номер 2, а по операциям типа «card» — у стойки номер 3.
Руководство банка пригласило вас для отладки нового информационного табло. У вас в распоряжении имеется корзина с использованными талонами после рабочего дня банка, в которой все талоны беспорядочно перемешались. Требуется восстановить последовательность информационных сообщений, выводимых на табло, в порядке очереди.
Рабочий день банка начинается в 08:00 и заканчивается в 20:00. Поскольку автомат электронной очереди в отделении всего один, гарантируется, что на всех талонах указана различная метка времени.
В первой строке каждого теста указано целое положительное число N — количество талонов в корзине (1 ≤ N ≤ 43200).
В следующих N строках содержатся описания талонов в формате «ID TIME TYPE», где ID — строка длины не более 10 символов, составленная из цифр и строчных букв латинского алфавита, TIME — метка времени формата «ЧЧ:ММ:СС» в пределах рабочего дня банка: от 08:00:00 до 20:00:00, TYPE — один из возможных типов операций: «card», «deposit», «loan», «transfer», «withdrawal» (без кавычек).
Выведите N строк — информацию по талонам, отсортированную по возрастанию времени выдачи талона. Каждая строка должна задавать один талон и иметь следующий формат: «Ticket <ID>: counter <C>» (без кавычек), где ID — идентификатор талона, а C — номер стойки (1, 2 или 3).
3
a 12:00:00 withdrawal
aba 08:00:00 deposit
abacaba 19:59:50 transfer
Ticket aba: counter 1
Ticket a: counter 2
Ticket abacaba: counter 1
Дан многочлен. Вычислить его производную и вывести с использованием алгебраических соглашений: пусть моном — это выражение типа cxp, где c — целое число, называемое коэффициентом, p — целое неотрицательное число, называемое показателем степени, тогда многочлен записывается как сумма мономов в соответствии со следующими правилами:
Одна строка длиной не более 1000 символов, описывающая многочлен. Коэффициенты многочлена целые, по модулю не превосходящие 104. Показатели степени — целые неотрицательные числа, не превосходящие 104. Гарантируется, что входной многочлен записан в соответствии с пунктами 1-7 правил, указанных в условии задачи.
Вывести производную многочлена в одну строку с использованием алгебраических соглашений.
-5x^{}3+4x^{}2+x+1-15x^{}2+8x+1x^{}2+4x-10-x2x+3
7
0
Вычисление производной многочлена сводится к вычислению суммы производных каждого его члена. Производная одного члена вычисляется как производная степенной функции по формуле (cxp)' = cpxp - 1
Найдите количество способов разложить число n на сумму слагаемых, являющимися степенями числа 2 (1, 2, 4, 8 и т.д.).
Способы, отличающиеся порядком слагаемых, считаются одинаковыми. Каждое число в разложении можно использовать не более k раз. Так как ответ может быть слишком большим, выведите его остаток от деления на число 109 + 7.
В единственной строке ввода содержатся два целых числа n и k (1 ≤ n ≤ 1018; 1 ≤ k ≤ 500).
Выведите остаток от деления количества способов на 109 + 7.
6 1
1
5 2
2
4 3
3
6 = 2 + 4
5 = 1 + 4 = 1 + 2 + 2
4 = 1 + 1 + 2 = 2 + 2 = 4
— Что имеем?
— Всего лишь два предмета:
— А где кубик?
— Изначально кубик находится в верхнем левом углу доски.
— Что можем делать? И сколько раз?
— Всего лишь одно действие: перекатывать кубик на соседнюю клетку по горизонтали и вертикали с той, на которой кубик стоит нижней гранью. Перекатывать кубик можно бесконечное число раз!
— А цифры? При чем тут цифры?
— Когда кубик стоит на какой-то клетке, цифра с нижней грани кубика переписывается на клетку доски.
— А как победить?
— Докатив кубик до правого нижнего угла доски, добиться того, чтобы число на шахматной доске было максимальным из возможных.
— Число на шахматной доске?
— Цифры с шахматной доски переписываются в следующем порядке: сначала выписываются друг за другом слева направо цифры с первой строки доски, затем в продолжение этой же строки выписываются цифры из второй строки в том же порядке, затем из третьей и так далее.
Выведите максимальное число, которое можно получить вышеописанным способом.
В первой строке содержатся два целых положительных числа N и M (1 ≤ N·M ≤ 106, N ≤ M) — количество строк и столбцов шахматной доски соответственно.
Вторая строка содержит шесть цифр от '0' до '9', которые написаны на гранях кубика, гарантируется, что никакая цифра не встречается два раза. Порядок перечисления граней следующий: нижняя, передняя, верхняя, задняя, левая и правая.
Единственная строка должна содержать одно число без ведущих нулей — ответ на задачу.
1 5
9 3 2 0 4 7
97249
2 2
5 4 7 0 3 6
6650
Вася очень любит решать задачи на геометрию, поэтому он был очень счастлив, когда мама подарила ему на день рождения отрезок AB. Он начал с ним играть, и вскоре у него возник вопрос, можно ли найти точки D и E, которые будут лежать на равном расстоянии от точки C — середины отрезка AB, при этом отрезок DE должен быть перпендикулярен AB и |CD|/|AB| = k. Помогите Васе найти ответ на его вопрос.
В первой строке даны Ax, Ay, Bx, By, k (0.01 ≤ k ≤ 1). Все координаты являются целыми числами и не превосходят 1000 по абсолютному значению, k задано не более, чем с двумя знаками после десятичной точки.
Нужно вывести координаты самой высокой точки. Если обе точки находятся на одинаковой высоте, выведите координаты самой левой из них. Координаты следует выводить с абсолютной или относительной погрешностью не хуже 10 - 4.
0 0 2 2 0.5
0 2
Вася придумал задачу, в которой требовалось реализовать три операции:
Петя, прочитав условие, сказал, что это баян и многие олимпиадники знают, как решить данную задачу. Попробуйте и Вы решить её (ну или вспомнить решение).
В первой строке дано количество операций N (2 ≤ N ≤ 105).
В следующих N строках описаны сами операции. В начале каждой строки содержится целое число type (1 ≤ type ≤ 3), обозначающее тип операции. Если тип операции равен 1 или 2, то далее дана строка s (|s| ≤ 105) состоящая из строчных латинских букв, которую нужно добавить или удалить соответственно. Если тип равен 3, то далее следует одно целое число 1 ≤ k ≤ 105 — длина префикса.
Гарантируется, что суммарная длина всех строк в запросах не превышает 106.
Для каждой операции 3 типа выведите в отдельной строке количество различных префиксов длины k.
10
1 abracadabra
1 aba
3 2
3 3
1 bcad
3 2
3 3
2 aba
3 2
3 3
1
2
2
3
2
2
На территории базы противника расположены N арсеналов, которые нужно уничтожить. Вы, Агент-070, имеете запас взрывчатки, достаточный для того, чтобы взорвать все N арсеналов по одному. Но при этом велик риск обнаружения.
Однако вам известно, что при взрыве каждого арсенала создаётся взрывная волна, которая может достичь других арсеналов и спровоцировать их взрыв. Эти арсеналы тоже будут создавать свои взрывные волны. В Центре вам выдали таблицу, в которой для каждого арсенала указано, какие другие арсеналы попадут под его взрывную волну.
Так как на минирование одного арсенала требуется время, а оно очень дорого, вам нужно заминировать как можно меньше арсеналов, чтобы, взорвав их, гарантированно уничтожить все арсеналы на базе.
В первой строке содержится число N — количество арсеналов на территории базы (1 ≤ N ≤ 100).
Далее дана таблица отношений: в N строках содержится по N символов, j-ый символ i-ой строки равен «1», если при взрыве i-го арсенала j-ый попадёт под его взрывную волну и «0» иначе.
Обратите внимание, что главная диагональ таблицы заполнена символами «0».
Выведите одно число — минимальное количество арсеналов, которое требуется заминировать для уничтожения всех арсеналов на базе.
3
000
100
100
2
3
010
001
000
1
Сегодня вам предстоит очутиться в шкуре хакера и взломать сверхсекретный компьютер потенциального противника. Система защиты у него не простая, а сортировочная.
Вам известно, что изначально в памяти компьютера хранится матрица A, которая содержит N строк и 3 столбца. А так же что компьютер может выполнять команды, состоящие из двух аргументов str1 и str2 (str1 не равно str2), по следующему алгоритму:
Для взлома компьютера вам нужно ввести такую последовательность команд, чтобы 1-й столбец матрицы был упорядочен по неубыванию, то есть A[1][1] ≤ A[2][1] ≤ ... ≤ A[N - 1][1] ≤ A[N][1].
В первой строке содержится натуральное число N (1 ≤ N ≤ 1000).
Далее следует N строк, каждая из которых содержит по три целых числа: Ai1, Ai2, Ai3 - элементы исходной матрицы ( - 109 ≤ Ai1, Ai2, Ai3 ≤ 109).
Первая строка должна содержать неотрицательно число M - число запросов к компьютеру (0 ≤ M ≤ 104).
Далее должно идти M строк, каждая из которых описывает одну команду и должна состоять из двух чисел: str1i и str2i (1 ≤ str1i, str2i ≤ N).
3
1 2 3
6 5 4
3 2 1
1
2 3
3
1 2 3
4 5 6
7 8 9
4
2 3
2 3
2 3
2 3
После циклического сдвига на один элемент вправо строка матрицы «1, 2, 3» будет иметь вид «3, 1, 2».
Поликарп приехал в столицу Байтландии, чтобы как следует осмотреть Байтландский Музей. В музее все экспонаты выстроены в ряд и пронумерованы от 1 до N. Он решил провести в столице Q дней. Каждый день он планирует посещать музей, просматривая отрезок экспонатов, начиная с экспоната Lk и заканчивая экспонатом Rk.
Просматривая экспонаты, Поликарп записывает свои впечатления в блокнот. Так как просмотр начинается с утра, то вначале Поликарп не многословен и записывает всего однин эпитет про первый просмотренный экспонат. Далее Поликарп чувствует прилив эмоций и записывает всё больше слов об очередном экспонате. Формально, на i-ом просмотренном экспонате Поликарп записывает i2 эпитетов в описание этого экспоната в свой блокнот.
После приезда домой Поликарп решил структурировать свои записи, но их было так много, что он попросил вас написать программу, считающую количество эпитетов для каждого экспоната. Единственное, что Поликарп запомнил, это какие отрезки он посещал в музее каждый день. Эту информацию он и предоставил вам. Помогите Поликарпу, он в долгу не останется!
В первой строке содержатся два целых числа N и Q (1 ≤ N, Q ≤ 106).
В следующих строках следуют параметры отрезков в виде пары чисел Lk и Rk (1 ≤ Lk, Rk ≤ N, 1 ≤ k ≤ Q).
Выведите N строк, в i-ой из которых должно содержаться количество эпитетов, записанных для i-го экспоната.
6 3
1 3
6 3
5 6
1
4
25
9
5
5
Николай Петрович хочет, чтобы его ученики как можно лучше сдали ЕГЭ по информатике. Поэтому он специально усложняет некоторые задания, требуя, чтобы ребята предлагали решения для произвольных входных данных. Сейчас Николай Петрович изменил условие очередной задачи, которое теперь выглядит следующим образом.
Есть робот, который последовательно выполняет k операций. Каждая операция заключается или в прибавлении к x заданного целого числа a или вычитании из x заданного целого числа b. Изначально x равен 0. Требуется определить, сколько различных чисел может получить робот после k операций.
Так как Николай Петрович сомневается, не перестарался ли он в этот раз со сложностью, то решил вначале проверить, сколько людей смогут решить данную задачу на личном первенстве.
В первой строке заданы три целых числа k, a и b (1 ≤ k ≤ 107;|a| ≤ 107;|b| ≤ 107)
Выведите одно число — ответ на задачу.
4 2 1
5
1 5 3
2