Страница: 1 Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Во времена обучения в Хогвартсе, когда лорда Волан-Де-Морта еще звали Томом Марволо Реддлом, он был довольно привлекательным молодым человеком. Однако многочисленные темные дела испортили его внешний вид, а именно - лишили носа.

Медицина не стоит на месте, и чудеса современной пластической хирургии помогут ему решить эту проблему. Он записался на пластическую операцию по созданию искусственного носа, и теперь перед ним осталась только одна проблема - ему необходимо выбрать место расположения своего будущего носа. К решению этого вопроса он подошел с математической точки зрения.

Лицо лорда можно упрощенно представить как клетчатый прямоугольник из \(n\) строк и \(m\) столбцов. Волан-де-Морт знает, что его нос займет ровно две клетки, имеющих общую горизонтальную или вертикальную сторону. Еще он знает, что некоторые клетки уже заняты его глазами и ртом, и они не могут быть заняты еще и носом. Теперь он хочет знать количество способов разместить новый нос на своем лице. Чтобы не стать следующей жертвой темных дел Волан-де-Морта, вам придется помочь ему с решением этой задачи.

Формат входного файла

Первая строка входного файла содержит два целых числа \(n\) и \(m\) (\(1 \le n, m \le 1{\,}000\)) - размеры лица лорда Волан-де-Морта. Каждая из следующих \(n\) строк содержит по \(m\) символов - описание его лица. Символ <<#>> означает, что соответствующая клетка уже чем-то занята, а символ <<.>> - что она свободна и может стать одной из двух, занятых носом.

Формат выходного файла

В первой строке выходного файла выведите одно целое число - количество способов разместить нос на лице Волан-де-Морта.

Примеры
Входные данные
2 2
..
..
Выходные данные
4
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Испокон веков разделением учеников на факультеты занимается волшебная шляпа. Раньше в школе было четыре различных факультета, но после недавних реформ факультетов стало \(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
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Гарри, возглавив подразделения мракоборцев, решил защитить железные дороги от злой магии. Всего в мире волшебников \(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
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Отряд Дамблдора готовится к полёту в Отдел Тайн Министерства Магии. Так как на их пути за Пророчеством могут встретиться слуги Волан-де-Морта, Гарри с Невиллом решили потренироваться в дуэльных боях.

Они решили провести \(n\) раундов дуэли, а после каждого раунда выпивать восстанавливающее зелье, чтобы не тратить лишних сил. Всего у ребят \(2n\) зелий. После каждого раунда дуэли они выбирают два наиболее близких по мощности восстанавливающих зелья. Из нескольких таких пар они выбирают ту, у которой сумма мощностей наибольшая. Затем Невилл выпивает более мощное зелье из пары, а Гарри - менее мощное.

Помогите Гарри с Невиллом определить, какие зелья и в каком порядке выпьет каждый из них.

Формат входного файла

Первая строка входного файла содержит одно целое число \(n\) (\(1 \le n \le 100\,000\)) - количество раундов дуэли. Во второй строке входного файла содержится \(2n\) целых чисел \(a_1, a_2, \ldots, a_{2n}\) (\(1\le a_i \le 10^9\)), где \(a_i\) - мощность \(i\)-го восстанавливающего зелья.

Формат выходного файла

В первой строке выведите \(n\) чисел - мощности зелий, которые выпьет Невилл. Во второй строке выведите \(n\) чисел - мощности зелий, которые выпьет Гарри. Зелья надо выводить в том порядке, в котором Невилл и Гарри должны их выпивать.

Примеры
Входные данные
1
3 6
Выходные данные
6
3
Входные данные
2
11 43 56 22
Выходные данные
22 56
11 43
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Наступает решающая битва за Хогвартс. Все \(n\) его обитателей собрались в холле для отражения атак противника. Каждый защитник Хогвартса обладает магической силой, которая представляет собой натуральное число от \(1\) до \(n\). Магические силы всех защитников различны.

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

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

Из предмета <<Основы маггловской информатики>> Гарри знает, что если он сделает \(n-1\) такой проход, все бойцы окажутся расположены в порядке возрастания их магической силы. Однако времени мало, поэтому Гарри успеет сделать только \(k\) таких проходов.

Помогите Гарри узнать, в каком порядке бойцы встретят армию противника.

Формат входного файла

В первой строке входного файла находится целое число \(n\) (\(1 \le n \le 200{\,}000\)) - количество защитников Хогвартса и число \(k\) (\(0 \le k \le n-1\)) - количество проходов, которое успеет сделать Гарри. Во второй строке находится \(n\) чисел \(a_i\) (\(1 \le a_i \le n\)) - магические силы бойцов в изначальном строю в порядке слева направо.

Формат выходного файла

В единственной строке выходного файла выведите \(n\) чисел \(b_i\) - магические силы бойцов в строю после \(k\) проходов Гарри.

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

Страница: 1 Отображать по:
Выбрано
:
Отменить
|
Добавить в контест