В Вес-Лагасе построили новый отель. В отеле бесконечное количество номеров (отелей с конечным количеством номеров для гостей Вес-Лагаса не хватает).
Гости Вес-Лагаса очень суеверные: они испытывают страх перед числом 13 и ненавидят номера, в десятичной записи которых присутствует это число. Поэтому в отеле нет комнат, которые содержат 13 в записи своего номера. Например, в отеле нет комнат с номерами 13, 132, 913, 1308, 1313. Требуется определить, какой номер имеет N-я по счету комната.
Входной файл содержит несколько тестовых блоков. Первая строка содержит число T (1 ≤ T ≤ 100) – количество тестовых блоков.
Каждая из следующих T строк описывает один тестовый блок и содержит единственное число N (\(1 \leq N \leq 10^{18}\)).
Выведите ответ для каждого тестового блока в отдельной строке.
3 20 150 1
21 162 1
Во входном файле записаны две последовательности. Каждая последовательность описывается двумя строками следующим образом: в первой строке идет длина последовательности \(M\) (1 \(\le\) \(M\) \(\le\) 500), во второй идут \(M\) целых чисел \(a_i\) (\(−2^{31}\) \(\le\) \(a_i\) < \(2^{31}\)) – члены последовательности. Нужно найти возрастающую последовательность наибольшей длины, являющейся подпоследовательностью обоих данных последовательностей.
В первой строке выходного файла выведите \(N\) - длину наибольшей общей возрастающей подпоследовательности.
Во второй строке выходного файла выведите саму подпоследовательность.
5 1 4 2 5 -12 4 -12 1 2 4
2 1 2
Даны две последовательности, требуется найти и вывести их наибольшую общую подпоследовательность.
В первой строке входных данных содержится число \(N\) – длина первой последовательности (1 ≤ \(N\) ≤ 1000). Во второй строке заданы члены первой последовательности (через пробел) – целые числа, не превосходящие 10000 по модулю.
В третьей строке записано число \(M\) – длина второй последовательности (1 ≤ \(M\) ≤ 1000). В четвертой строке задаются члены второй последовательности (через пробел) – целые числа, не превосходящие 10000 по модулю.
Требуется вывести наибольшую общую подпоследовательность данных последовательностей, через пробел.
3 1 2 3 3 2 3 1
2 3
Дана текстовая строка. С ней можно выполнять следующие операции:
1. Заменить один символ строки на другой символ.
2. Удалить один произвольный символ.
3. Вставить произвольный символ в произвольное место строки.
Например, при помощи первой операции из строки "СОК" можно получить строку "СУК", при помощи второй операции - строку "ОК", при помощи третьей операции - строку "СТОК.
Минимальное количество таких операций, при помощи которых можно из одной строки получить другую, называется стоимостью редактирования или расстоянием Левенштейна.
Определите расстояние Левенштейна для двух данных строк.
Программа получает на вход две строки, длина каждой из которых не превосходит 1000 символов, строки состоят только из заглавных латинских букв.
Требуется вывести одно число – расстояние Левенштейна для данных строк.
ABCDEFGH ACDEXGIH
3
Дана последовательность, требуется найти её наибольшую возрастающую подпоследовательность.
В первой строке входных данных задано число \(N\) - длина последовательности (1 ≤ \(N\) ≤ 1000). Во второй строке задается сама последовательность (разделитель - пробел). Элементы последовательности - целые числа, не превосходящие 10000 по модулю.
Требуется вывести наибольшую возрастающую подпоследовательность данной последовательности. Если таких подпоследовательностей несколько, необходимо вывести одну (любую) из них.
6 3 29 5 5 28 6
3 5 28