Заключительный этап 2010(4 задач)
Заключительный этап 2012(4 задач)
Заключительный этап 2013(5 задач)
Заключительный этап 2015(5 задач)
На планете Руук существует Большая Корпорация Маленьких Фей. Одним из видов деятельности, которым испокон веков занимаются ее сотрудницы, является посадка грядок с волшебными грибами. Каждый день, начиная с самого первого дня существования этой корпорации, феи создают одну новую грядку грибов. После этого с новой грядки два дня можно собирать споры, которыми размножаются эти грибы, а потом грядка будет поставлять уже только сам продукт — грибы.
Таким образом, если обозначить количество грибов, посаженных на грядке, созданной в день номер i, как ci, то оно будет считаться по формуле ci = ci - 1 + ci - 2. Так, в первый и второй дни было посажено по одному грибу, в третий — два, в четвертый — три, в пятый — пять и так далее.
Волшебные грибы являются самыми ценными сувенирами, которые путешественник может привезти с планеты Руук. Поэтому первым, что делает любой приезжий, становится поиск грядки с волшебными грибами. Однако, в последнее время все чаще стали появляться сообщения о поддельных волшебных грибах. Тщательное расследование показало, что это является следствием действий Маленькой Корпорации Больших Фей, которая сажает грядки с грибами, внешне не отличимыми, но далеко не такими ценными, как волшебные. Причем, создавая очередную грядку, эти феи сажают туда такое количество грибов, какое их соперницы никогда не сажали и не смогут посадить.
Казалось бы, после выяснения этого факта отличать волшебные грядки от поддельных стало просто. Но обе корпорации существуют достаточно давно, количество грядок и грибов на них давно превысило все разумные пределы. Вас попросили написать программу, по количеству грибов на грядке сообщающую, является ли эта грядка волшебной.
Первая строка входного файла содержит одно число N (1 ≤ N ≤ 1000000) — количество исследуемых грядок. Следующие n строк содержат по одному целому числу ai — количества грибов на исследуемых грядках. Размер входного файла не превышает 1 Мб.
Для каждого числа, данного во входном файле, выведите «Yes», если грядка с таким количеством грибов является волшебной, и «No» — если не является. Ответы разделяйте переводами строк.
Решения, работающие для чисел, не превышающих 263 - 1, будут оцениваться из 30 баллов.
Решения, также работающие для входных данных, не превышающих 15 килобайт, будут оцениваться из еще 30 баллов.
8 1 2 3 4 5 6 7 8
Yes Yes Yes No Yes No No Yes
Федот — дизайнер, ему поручена ответственная работа по художественной укладке плитки черного и белого цвета. Его последнее задание — уложить черные и белые плитки в квадрате n × n.
Федот любит свою работу и всегда тщательно готовится к каждому проекту. Федот считает, что два квадрата похожи, если один из них можно получить из другого несколько раз заменив цвета в какой-то строке или столбце на противоположные.
Федот заметил, что клиенты никогда не смотрят на всю работу целиком, обычно поле их зрения ограничивается квадратом k × k. Для оценки эскизов он ввел специальную величину — сложность. Она равна числу пар не похожих друг на друга квадратов k × k, которые встречаются в картине.
Методом проб и ошибок Федот установил, что клиентам нравятся картины определенной сложности. Слишком большая сложность похожа на хаос, а слишком малая навевает скуку, считает Федот.
Прежде чем класть плитку, Федот подготовил несколько эскизов. Помогите Федоту вычислить их сложность.
Первая строка входного файла содержит два целых числа n и k (1 ≤ k ≤ n ≤ 500). Следуюшие n строк содержат описание эскиза. Каждая из них имеет длину n и состоит из символов b и w, которые соответствуют белому и черному цветам плиток.
В первой строке выходного файла выведите одно целое число q — сложность картины.
Решения, работающие при n ≤ 10, будут оцениваться из 30 баллов.
Решения, работающие при n ≤ 100, будут оцениваться из 60 баллов.
2 1 bw wb
0
3 2 bwb wbb bbw
3
Во времена обучения в Хогвартсе, когда лорда Волан-Де-Морта еще звали Томом Марволо Реддлом, он был довольно привлекательным молодым человеком. Однако многочисленные темные дела испортили его внешний вид, а именно - лишили носа.
Медицина не стоит на месте, и чудеса современной пластической хирургии помогут ему решить эту проблему. Он записался на пластическую операцию по созданию искусственного носа, и теперь перед ним осталась только одна проблема - ему необходимо выбрать место расположения своего будущего носа. К решению этого вопроса он подошел с математической точки зрения.
Лицо лорда можно упрощенно представить как клетчатый прямоугольник из \(n\) строк и \(m\) столбцов. Волан-де-Морт знает, что его нос займет ровно две клетки, имеющих общую горизонтальную или вертикальную сторону. Еще он знает, что некоторые клетки уже заняты его глазами и ртом, и они не могут быть заняты еще и носом. Теперь он хочет знать количество способов разместить новый нос на своем лице. Чтобы не стать следующей жертвой темных дел Волан-де-Морта, вам придется помочь ему с решением этой задачи.
Первая строка входного файла содержит два целых числа \(n\) и \(m\) (\(1 \le n, m \le 1{\,}000\)) - размеры лица лорда Волан-де-Морта. Каждая из следующих \(n\) строк содержит по \(m\) символов - описание его лица. Символ <<#>> означает, что соответствующая клетка уже чем-то занята, а символ <<.>> - что она свободна и может стать одной из двух, занятых носом.
В первой строке выходного файла выведите одно целое число - количество способов разместить нос на лице Волан-де-Морта.
2 2 .. ..
4
Испокон веков разделением учеников на факультеты занимается волшебная шляпа. Раньше в школе было четыре различных факультета, но после недавних реформ факультетов стало \(p\). Шляпа же всё ещё занимается распределением учеников.
Перед торжественной церемонией шляпа заранее составляет план распределения учеников по факультетам. План является последовательностью чисел \(a_1, a_2, \ldots, a_k\), где \(a_i\) является номером факультета, на который попадет \(i\)-й ученик.
В своём плане шляпа использует для факультетов номера от \(0\) до \(p-1\). Следующим за \(i\)-м факультетом считается \((i+1)\)-й, за \((p-1)\)-м - нулевой. Первая версия плана содержит только один факультет - нулевой. После чего шляпа много раз дописывает в конец плана текущее содержимое плана, заменив каждый факультет на следующий.
Рассмотрим распределение девяти учеников по четырём факультетам. Шляпа будет последовательно строить следующие планы: \((0)\), \((0, 1)\), \((0, 1, 1, 2)\), \((0, 1, 1, 2, 1, 2, 2, 3)\), \((0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 0)\). Длина последнего плана достаточна для распределения всех учеников по факультетам, поэтому следующие планы шляпа может не строить.
Скажите, на какой из \(p\) факультетов шляпа распределит \(n\)-го ученика.
В первой строке задано число \(q\) (\(1 \le q \le 10^5\)) - количество запросов. В следующих \(q\) строках описаны запросы. Каждый запрос содержит два целых числа \(n\) и \(p\) (\(1 \le n \le 10^{18}\), \(2 \le p \le 10^{18}\)) - номер ученика и количество факультетов в Хогвартсе.
Для каждого запроса выведите одно число - номер факультета, на который шляпа распределит \(n\)-го ученика.
10 1 1000 2 1000 4 1000 8 1000 16 1000 32 1000 64 1000 128 1000 256 1000 512 1000
0 1 2 3 4 5 6 7 8 9
Гарри, возглавив подразделения мракоборцев, решил защитить железные дороги от злой магии. Всего в мире волшебников \(n\) железнодорожных станций и \(m\) железных дорог, соединяющих эти станции. Каждая дорога соединяет две различные станции, причем станции могут быть соединены более чем одной дорогой. По каждой железной дороге поезда ходят в обе стороны. Также известно, что между любыми двумя станциями существует путь, состоящий из железных дорог.
У Гарри в запасе \(m\) новых защитных заклинаний, пронумерованных целыми числами от \(1\) до \(m\). Каждое заклинание накладывается на какую-то железную дорогу. Гарри не может использовать одно и то же заклинание для защиты более чем одной железной дороги.
Помимо защиты железных дорог, Гарри хочет, чтобы те же заклинания охраняли и станции. Станция находится под охраной, если наибольший общий делитель номеров заклинаний, защищающих железные дороги, соединяющие эту станцию с остальными, равен единице.
Помогите Гарри защитить все железные дороги так, чтобы каждая станция была под охраной.
В первой строке входного файла находится целое число \(n\) (\(1 \le n \le 50{\,}000\)) - количество железнодорожных станций и число \(m\) (\(n-1 \le m \le 150{\,}000\)) - количество железных дорог. Каждая из следующих \(m\) строк содержит по два целых числа: \(a_i\) и \(b_i\) (\(1 \le a_i,b_i \le n, a_i \ne b_i \)) - номера станций, соединенных этой железной дорогой.
Выведите "IMPOSSIBLE", если невозможно защитить все дороги так, чтобы каждая станция была под охраной. В противном случае выведите \(m\) чисел по одному в строке, \(i\)-я строка должна содержать номер заклинания, которое защищает железную дорогу, описанную в \(i+1\)-й строке входного файла.
5 6 1 5 1 4 5 4 4 1 3 2 3 4
4 3 5 6 1 2