Археологический раздел НИИЧАВО решил заняться изучением древнефлатландских волшебных шпаг. После изучения всех имеющихся в наличии образцов было выяснено, что почти все шпаги на самом деле являются копиями друг друга.
А именно, в глубокой древности была произведена первая волшебная шпага. Время от времени мастера брали одну из существующих волшебных шпаг и изготавливали ее копию. Разумеется, копия отличалась от оригинала, но в целом наследовала некоторые его признаки.
Поскольку изготовление копии волшебной шпаги снижает ее магическую силу, ученые установили, что с каждой шпаги было сделано не более двух копий. Также было установлено, что копия могла быть изготовлена не ранее чем через \(k\) лет после изготовления оригинала.
В распоряжении ученых оказались \(n\) шпаг, про каждую из которых им известен ее возраст. Ученые хотят выяснить, какая из шпаг была изготовлена первой, а для всех остальных шпаг выяснить, с какой из шпаг она была скопирована. К сожалению, информации о возрасте может быть недостаточно, чтобы восстановить эту информацию однозначно, но ученых устроит любой возможный вариант
Первая строка входного файла содержит два числа \(n\) и \(k\) — количество шпаг, имеющихся у ученых, и минимальный возраст, необходимый для того, чтобы со шпаги можно было сделать копию (\(1 \le n \le 100 000, \ 1 \le k \le 10^8\)). Следующая строка содержит \(n\) чисел: \(a_1, \ a_2, \ \dots \ , \ a_n\), где \(a_i \ \ (0 \le a_i \le 10^9\) ) — возраст \(i\)-й шпаги.
Для каждого экземпляра шпаги выведите номер шпаги, с которой она была скопирована. Обратите внимание, с каждой шпаги могло быть снято не более двух копий.
Если экземпляр является первой изготовленной шпагой, то выведите для соответствующей шпаги число \(0\).
Если возможных решений несколько, выведите любое.
Если ученые ошибаются, и не существует последовательности, в которой копии шпаг могли бы быть изготовлены, выведите единственное число \(−1\).
Всем известно, что в городах есть большая проблема — пробки. Пробка образуется, когда по дороге пытаются ехать сразу много машин. При этом основная причина образования пробок — перекрестки. Самые большие пробки образуются именно на них.
В одном городе на перекрестке, на котором пересекаются две односторонние дороги, решили установить светофор.
В каждый момент светофор либо горит зеленым для машин на первой дороге, либо горит зеленым для машин на второй дороге, либо переключается между этими режимами. По правилам дорожного движения, в моменты переключения светофора можно ехать по любой дороге.
Светофор устроен следующим образом. В момент времени \(0\) он загорается зеленым для машин на первой дороге и красным для машин на второй дороге. Далее, через \(g\) секунд он переключается на красный для машин на первой дороге и зеленый для машин на второй дороге, после чего через \(r\) секунд переключается обратно на зеленый для первой дороги, и т.д.
Таким образом, светофор горит зеленым для первой дороги в моменты времени
\((k(r + g), \ k(r + g) + g)\) для целых \(k\) и зеленым для второй дороги
— в \((k(r + g) + g, (k + 1)(r+g)).\)
Переключения же происходят в моменты \(k(r+g)\) и \(k(r+g)+g\). Когда светофор горит зеленым
для первой дороги, по ней могут ехать машины, а по второй — нет, и наоборот. Будем считать что
в момент переключения, могут проезжать машины с обеих дорог. Считается что машина проехала
в момент переключения, если момент, когда она проехала, и момент переключения отличаются не
более чем на \(10^{−5}\).
В соответствии с технической документацией период работы светофора зафиксирован и должен быть равен \(x\), иначе говоря, должно выполняться равенство \(r+g=x\). С соблюдением этого условия значения \(r\) и \(g\) можно выбрать любыми неотрицательными вещественными числами.
Для выбора оптимальных значений \(r\) и \(g\) было проведено исследование трафика на дорогах и получены следующие данные.
На каждой из дорог находится несколько машин, которые едут в сторону перекрестка. Машины не обгоняют друг друга. Каждый раз, когда машина догоняет более медленную, она снижает скорость и следует непосредственно за ней с соответствующей скоростью. Размерами машин и временем на изменение скорости можно пренебречь. Когда машина подъезжает к перекрестку, если горит зеленый свет или происходит переключение, то она немедленно проезжает перекресток. В противном случае машина останавливается и ждет включения зеленого света.
В момент \(0\) на первой дороге расположены \(n\) машин, \(i\)-я из них находится на расстоянии \(a_i\) метров от перекрестка и движется в его сторону со скоростью \(v_i\) м/с.
Аналогично, на второй дороге расположены \(m\) машин, \(i\)-я из них находится на расстоянии \(b_i\) метров от перекрестка и движется в его сторону со скоростью \(w_i\) м/с.
Чтобы пробок в городе было меньше, необходимо выбрать такие \(g\) и \(r\), чтобы максимальное число машин, которые одновременно стоят на перекрестке, было как можно меньше.
Помогите управлению дорожного движения выбрать оптимальные \(g\) и \(r\).
В первой строке задано вещественное число \(x \ (1 \le x \le 10^4
)\), с не более чем тремя знаками
после десятичной точки. Во второй строке задано число
\(n \ (0 \le n \le 100 000)\) — количество машин
на первой дороге. Далее, в \(n\) строках задано описание машин на первой дороге. Описание каждой
машины состоит из двух вещественных чисел \(a_i\) и \(v_i\) — расстояния от машины до перекрестка и
ее скорости, соответственно (\(1 \le a_i
, \ v_i \le 10^4).\) Числа \(a_i\) и \(v_i\) заданы не более, чем с тремя знаками
после десятичной точки.
В следующей строке задано число \(m \ (0 \le m \le 100 000, \ 1 \le n \ + \ m \le 100 000)\) — количество машин на второй дороге. Далее, в \(m\) строках задано описание машин на второй дороге. Описание каждой машины состоит из двух вещественных чисел \(b_i\) и \(w_i\) — расстояния от машины до перекрестка и ее скорости, соответственно \((1 \le b_i, \ w_i \le 10^4).\) Числа \(b_i\) и \(w_i\) заданы не более, чем с тремя знаками после десятичной точки.
Никакие две машины исходно не находятся в одной точке. Оба списка машин даны в порядке возрастания расстояния до светофора.
На первой строке выходного файла выведите минимальное \(k\), такое что выбором \(g\) и \(r\) можно добиться, чтобы на перекрестке никогда не стояло одновременно более \(k\) машин.
На второй строке выведите два вещественных числа \(g\) и \(r\), позволяющие добиться искомого. Следует выводить \(g\) и \(r\) не менее чем с 6 знаками после десятичной точки.
Если существует несколько оптимальных решений, выведите любое.
В первом примере все машины подъезжают к перекрестку в момент \(1\). Сделав переключение светофора как раз в этот момент можно обеспечить проезд всех машин без ожидания.
Во втором примере на первой дороге ситуация развивается следующим образом. Сначала через \(1/15\) секунды третья машина догоняет вторую и ей приходится снизить скорость до \(5\) м/с. Затем они вместе догоняют первую машину в момент \(0.5\), им обеим приходится снизить скорость до \(1\) м/с. Так вместе они и подъезжают к перекрестку через \(2\) секунды после начала движения.
На второй дороге машины движутся с равной скоростью и подъезжают к перекрестку через 1, 5 и 7 секунд после начала движения, соответственно. При любом выборе \(g\) и \(r\) хотя бы одной машине придется ждать. Оптимально выбрать любое значение \(g\) от \(2\) до \(3\), включительно. В этом случае ждать будут первая и вторая машины на второй дороге, но одновременно на перекрестке будет находиться не более одной машины. Если выбрать \(g < 2\), то придется ждать трем машинам на первой дороге, а если выбрать \(g > 3\), то вторая и третья машины на второй дороге будут одновременно ждать на перекрестке.
2.0 1 1.0 1.0 2 1.0 1.0 2.0 2.0
0 1.000000000000000 1.000000000000000
4.0 3 2.0 1.0 4.0 5.0 5.0 20.0 3 1.0 1.0 5.0 1.0 7.0 1.0
1 2.000000000000000 2.000000000000000
Ваня, Сережа и Дима любят физические нагрузки. Больше всего им нравится поднимать тяжести. Ребята очень давно начали заниматься гиревым спортом и уже собрали набор гирь для тренировок. Этот набор состоит из \(n\) гирь с различными целыми весами от \(1\) до \(n\).
Совсем недавно ребята нашли новый спортивный зал и решили перенести туда все свои гири. Так как им очень нравится их поднимать, то каждому хочется нести как можно больший вес. Но ребята очень честные, и весь вес решили распределить поровну.
Помогите спортсменам разделить набор из \(n\) гирь с весами \(1, \ 2, \ \dots, \ n\) на три равные по весу части.
Входной файл содержит единственное целое число \(n \ (1 \le n \le 100 000)\) — количество гирь.
Выведите для каждого спортсмена набор гирь, который ему нужно перенести в новый спортивный зал. Наборы выводятся следующим образом. В первой строке выведите количество гирь в наборе. Далее, во второй строке через пробел выведите веса гирь.
Если разбить все гири на три равных по весу множества нельзя, выведите «Impossible».
Если существует несколько решений, можно вывести любое.
6
2 1 6 2 2 5 2 3 4
3
Impossible
У юного биолога Антона в красивой стеклянной колбе живут \(n\) бактерий.
Добавляя различные реактивы в колбу, Антон может контролировать число бактерий. Так, если \(p\) — некоторое простое число, то Антон умеет в домашних условиях получать вещество \(C_pH_{2p \ + \ 1}OH\), которое, будучи добавленным в колбу, уменьшает число бактерий ровно в \(p\) раз. Если же число бактерий не делилось на \(p\), то результат действия вещества не определен, и эксперимент теряет научную точность. Этого Антон допустить не желает, поэтому он применяет вещество \(C_pH_{2p \ + \ 1}OH\) только когда число бактерий делится на p.
Кроме того, у Антона на кухне есть неограниченный запас диэтиламида лизергиновой кислоты (\(C_{20}H_{25}N_{30}\)). При добавлении в колбу с бактериями диэтиламида лизергиновой кислоты, число бактерий возводится в квадрат.
Антон хочет, чтобы в колбе стало \(m\) бактерий. При этом он хочет добавлять какие-либо вещества в колбу наименьшее возможное число раз. Помогите ему сделать это.
Во входном файле содержатся два натуральных числа \(n\) и \(m\) (\(1 \le n, m \le 10^9\) ) — изначальное и желаемое число бактерий в колбе у Антона.
Если получить ровно m бактерий невозможно, выведите в выходной файл слово «Impossible».
Если же искомый результат достижим, выведите кратчайшую последовательность добавлений веществ, которая позволяет его достичь, в следующем формате: добавление вещества \(C_pH_{2p \ + \ 1}OH\) кодируется числом \(p\), добавление вещества \(C_{20}H_{25}N_{30}\) — числом \(0\). Числа должны быть разделены пробелами и/или переводами строк.
Если существует несколько кратчайших последовательной добавлений веществ, оставляющих \(m\) бактерий, выведите любую из них.
В первом примере Антону требуется добавлять в колбу вещества три раза: сначала добавить \(C_2H_5OH\), уменьшая число бактерий в два раза, то есть оставляя \(6\) бактерий; затем добавить \(C_{20}H_{25}N_{30}\), возводя число бактерий в квадрат, то есть увеличивая его до \(36\); и наконец, добавить снова \(C_2H_5OH\), деля число бактерий на два и делая его равным \(18\).
12 18
2 0 2
56 6
Impossible
Борис очень любит различные шахматные головоломки. У него есть младший брат Вова. Борис очень любит задавать простые головоломки Вове, а в награду, если тот их решит, давать ему конфету. Но Вова, к сожалению, не очень любит шахматы, зато любит программирование.
В этот раз Борис задал Вове следующую головоломку: на шахматном поле размером \(8 \times 8\) клеток стоит одна шахматная фигура — конь. Необходимо расположить на поле еще две шахматные фигуры — ладью и слона, таким образом, чтобы они били коня, но не били друг друга, и конь не бил их. Так как Вова еще не очень силен в программировании, он попросил вас помочь ему с решением данной головоломки.
Напомним, что конь бьет те клетки, которые отстоят от его текущего положения на две клетки по горизонтали и одну клетку по вертикали, или на две клетки по вертикали и одну по горизонтали.
Ладья бьет те клетки, которые находятся на той же горизонтали или вертикали, что и она. Слон бьет те клетки, которые находятся на той же диагонали, что и он.
Первая строка входного файла содержит положение коня в следующем формате. Сначала буква от «a» до «h», обозначающая номер столбца в котором находится конь, потом цифра от «1» до «8», обозначающая номер строки.
В первую строку выведите положение ладьи в аналогичном формате, во вторую строку выведите положение слона.
Гарантируется, что требуемая расстановка всегда существует
a1
b1 c3