Михаил придумал решение задачи аппаратного кодирования видео с помощью последовательно соединенных микроконтроллеров. Каждый микроконтроллер выполняет определенную часть задачи, после чего передает данные следующему микроконтроллеру (получается некий конвейер из микроконтроллеров). В устройстве используется N микроконтроллеров, которые должны быть соединены последовательно: первый со вторым, второй с третьим и т. д. По задумке, микроконтроллеры располагались на плате в одну горизонтальную линию.
Михаил заказал платы с микроконтроллерами на фабрике, однако получилось так, что микроконтроллеры вместо того, чтобы стоять последовательно, оказались в хаотичном порядке! Поскольку заказ был довольно дорогим, Михаил решил максимально использовать имеющуюся плату, т.е. последовательно соединить дорожками наибольшее количество микроконтроллеров в цепочку вида 1 - 2 - ... - m. Оставшуюся часть придется заказать заново.
Плата, на которой расположены микроконтроллеры, будет односторонней (все дорожки расположены на одной плоскости и, естественно, не могут пересекаться). Если в микроконтроллер дорожка со входным сигналом входит сверху, то дорожка с выходным сигналом должна выходить из него обязательно снизу, и наоборот. Микроконтроллеры расположены вплотную друг к другу (проложить между ними дорожку нельзя). Обойти линию микроконтроллеров дорожкой слева или справа также нельзя (только сверху или снизу). Сверху и снизу от линии микроконтроллеров плата имеет достаточные размеры и позволяет проложить любое число дорожек.
Помогите Михаилу определить, какое максимальное количество последовательных микроконтроллеров удастся соединить, начиная с первого.
В первой строке входного файла задано число N — длина полоски из микроконтроллеров.
Во второй строке задана перестановка из N чисел — порядок расположения микроконтроллеров.
Выведите единственное число — максимальное количество микроконтроллеров, которые удастся соединить последовательно, начиная с первого.
Тесты состоят из четырех групп.
7 5 1 4 7 6 3 2
5
На днях в Московский зоопарк прибыли новые жильцы — целых N канареек. Пока бедные птенцы томятся в неудобных временных контейнерах, в зале заседаний зоопарка на Совете орнитологов решается их судьба. А именно, ученым предстоит решить, как лучше всего распределить N канареек по имеющимся в зоопарке K клеткам так, чтобы при этом ни одна клетка не пустовала. Поскольку главным критерием при размещении птиц является комфорт, орнитологов в первую очередь интересует, сколько канареек окажется в самой заполненной клетке (то есть в клетке с максимальным числом канареек). Для начала, Вам, как главному (и, как это ни печально, единственному) программисту зоопарка, поручили оценить эту величину, то есть найти, какое минимально и максимально возможное количество птиц может оказаться в самой заполненной клетке при условии, что ни одна клетка не останется пустой.
В единственной строке содержатся два натуральных числа, разделенных пробелом: N — количество канареек и K — количество клеток ( 1 ≤ K ≤ N ≤ 10 9 ).
Выведите два натуральных числа: минимально и максимально возможное количество канареек в самой заполненной клетке.
Тесты к этой задаче состоят из четырех групп.
Баллы за каждую группу тестов ставятся только при прохождении всех тестов группы.
7 4
2 4
12 3
4 10
Как вы помните, Джонни работает в правительственных службах одной неизвестной страны. В свободное от государственных заданий время он разводит страусов на своей маленькой ферме.
На ферме есть N × M птиц. Джонни соорудил каждому страусу по загону, установив перегородки так, чтобы они образовывали прямоугольник из N строк и M столбцов. Тем самым образуется ровно N × M квадратных загонов 1 × 1. Обратите внимание: между соседними загонами он ставил ровно одну перегородку, а не две.
В один прекрасный осенний день заслуженный страус Чак, находившийся в нижнем левом загоне, почувствовал острую необходимость отправиться по важным и неотложным страусиным делам. Он начал пробивать себе путь на волю, ломая перегородки. Сначала он сломал правую перегородку и переместился загоном правее. Потом он сломал верхнюю перегородку и переместился вверх. Далее он прокладывал себе путь по такому же принципу: ломая попеременно то правую, то верхнюю перегородку, пока, наконец, не оказался на свободе.


Джонни, увидев разгром, учиненный Чаком, сильно расстроился. Но делать нечего — надо приводить все в порядок. Он отправил письмо на ближайшую лесопилку, указав, сколько у него осталось перегородок, но забыв при этом указать, сколько ему требуется.
Помогите работникам лесопилки: зная, сколько у Джонни осталось перегородок, определите, каких размеров могла быть ферма.
В единственной строке входного файла задано целое число X — количество перегородок, оставшихся у Джонни (1 ≤ X ≤ 109).
В первой строке выходного файла выведите C — число возможных вариантов размеров фермы Джонни.
В последующих C строках выведите возможные варианты размеров фермы. В каждой строке выведите через пробел два целых числа — возможное значение N и M.
Обратите внимание, Джонни мог ошибиться при подсчете оставшихся перегородок, поэтому возможно, что не существует вариантов, подходящих под условие. В таком случае требуется вывести единственное число 0.
Тесты к этой задаче состоят из четырех групп.
Баллы за каждую группу тестов ставятся только при прохождении всех тестов группы.
9
2 3 1 2 2
Иннокентий устроил ремонт на кухне. Как профессиональный строитель, он прекрасно знает, что для кухни нет ничего лучше кафельной плитки.
Кухня Иннокентия представляет собой прямоугольник W на H метров. К сожалению, нужная плитка продается только в одном магазине. Каждая плитка имеет фиксированный размер a на b метров, и на нее нанесен интересный узор. Для того, чтобы пол кухни выглядел красиво, плитку надо класть так, чтобы каждая сторона плитки граничила максимум с одной плиткой и была параллельна одной из сторон кухни. Узор является очень специфическим, поэтому плитки нельзя поворачивать, даже все одновременно — сторона кухни длиной W должна быть всегда параллельна стороне плитки длиной a.
Возможно, плитки придется разрезать на меньшие части с помощью прямолинейных разрезов вдоль одной из сторон. При этом полученные части плитки можно также разрезать на меньшие части. Иннокентий хочет замостить кухню так, чтобы в итоге было использовано минимально возможное количество плиток и их частей.
Помогите Иннокентию выяснить, какое минимальное число целых плиток размером a на b нужно купить, чтобы красиво замостить всю кухню.
В первой строке входных данных содержатся два целых числа W и H — размеры кухни (1 ≤ W, H ≤ 10 000). В следующей строке содержится два целых числа a и b — размеры одной плитки (1 ≤ a ≤ W, 1 ≤ b ≤ H).
Выведите одно число — минимальное число плиток, которое необходимо купить Иннокентию. Помните, что плитки ни в коем случае нельзя поворачивать!
Тесты к этой задаче состоят из четырех групп.
Баллы за каждую группу тестов ставятся только при прохождении всех тестов группы.
10 10 2 2
25
3 5 2 2
4
35 17 25 1
26
Создатели мультсериала «Футурама» при разработке серий используют нумерацию, которая называется «код серии». Все серии разбиты на производственные блоки. Код серии имеет вид: xACVyy, где x — номер производственного блока (возможно, двузначный), а yy — номер серии в блоке (обязательно двузначный, возможно, с ведущим нулем). При показе по телевизору используется другая нумерация, называемая «код показа». Код показа имеет вид SxxEyy, где xx — номер сезона, а yy — номер серии в сезоне. Числа xx и yy обязательно двузначные, возможно, с ведущим нулем. Порядок и суммарное количество серий при создании и показе совпадает.
По информации о количестве производственных блоков, сезонов и количестве серий в каждом из блоков и сезонов необходимо создать «словарь», в котором каждому коду серии будет сопоставлен код показа.
В первой строке задается два числа N и M (1 ≤ N, M ≤ 50) — количество производственных блоков и сезонов соответственно.
Во второй строке содержится N чисел, задающих количество серий в каждом из N блоков. Количество серий в каждом блоке не меньше 1 и не больше 50.
В третьей строке содержится M чисел, задающих количество серий в каждом из M сезонов. Количество серий в каждом сезоне не меньше 1 и не больше 50.
Для каждой серии выведите код серии и код показа, разделенные пробелом. Вывод необходимо осуществлять в том порядке, в котором создавались серии.
Тесты к этой задаче состоят из четырех групп.
Баллы за каждую группу тестов ставятся только при прохождении всех тестов группы.
2 3 3 2 2 1 2
1ACV01 S01E01 1ACV02 S01E02 1ACV03 S02E01 2ACV01 S03E01 2ACV02 S03E02