разделяй и властвуй

9 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Вам дана длинная строка \(S\) из символов M и O и целое число \(K \geq 1\). Посчитайте количество способов разбить \(S\) на подпоследовательности так, что каждая подпоследовательность MOOOO....O с ровно \(K\) O, по модулю \(10^9+7\).

Поскольку строка очень длинная, Вам она не дана точно. Вместо этого Вам дано целое число \(L\) (\(1 \leq L \leq 10^{18}\)), и строка \(T\) длины \(N\) (\(1 \leq N \leq 10^6\)). Строка \(S\) есть конкатенация \(L\) копий строки \(T\).

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Первая строка содержит \(K\), \(N\), \(L\).

Вторая строка содержит строку \(T\) длины \(N\). Каждый символ или M или O.

Гарантируется, что количество декомпозиций \(S\) не равно 0.

ФОРМАТ ВВОДА (на экран / stdout):

Выведите количество разбиений строки \(S\), по модулю modulo \(10^9+7\).

\(N\) (\(1 \leq N \leq 5 \cdot 10^5\)) коров Фермера Джона стоят по порядку, Корова \(1\) в начале, корова \(N\) - в конце ряда. Коровы имеют различные разновидности. ФД обозначил разновидности числами от \(1\) до \(N\). \(i\)-ая корова в ряду имеет разновидность \(a_i\) (\(1 \leq a_i \leq N\)).

ФД везёт коров на проверку. Однако ветеринар будет выполнять проверку \(i\)-коровы только если она имеет разновидность \(b_i\) (\(1 \leq b_i \leq N\)).

ФД ленив и не хочет полностью переупорядочивать своих коров. Он выполняет следующую операцию ровно один раз.

  • Выбирает два целых числа \(l\) и \(r\) таких что \(1 \leq l \le r \leq N\). Реверсирует порядок коров между \(l\)-ой и \(r\)-ой коровами включительно.

ФД хочет измерить насколько эффективен его подход. Найдите сумму количеств проверенных коров по всем \(N(N+1)/2\) возможным операциям.

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Первая строка содержит целое число \(N\).

Вторая строка содержит \(a_1, a_2, \ldots, a_N\).

Третья строка содержит \(b_1, b_2, \ldots, b_N\).

ФОРМАТ ВЫВОДА (на экран / stdout):

Выведите одну строку с суммой количеств коров, которые будут проверены по всем возможным операциям.

Cowmistry#90090
Беси нуждается в Вашей помощи. Она должна создать микстуру из трёх различных компонент. Некоторые из компонент нельзя смешивать друг с другом. В частности, две компоненты с метками \(a\) и \(b\) могут присутствовать в одной микстуре, только если \(a \oplus b \le K\) (\(1 \le K \le 10^9\)).

Замечание: Здесь, \(a\oplus b\) обозначает побитовое исключающее ИЛИ неотрицательных целых чисел \(a\) и \(b\). Эта операция эквивалентна сложению соответствующих пар битов по модулю 2 и игнорированию переноса. Например

\[0\oplus 0=1\oplus 1=0,\]
\[1\oplus 0=0\oplus 1=1,\]
\[5\oplus 7=101_2\oplus 111_2=010_2=2.\]

У Беси есть \(N\) (\(1\le N\le 2\cdot 10^4\)) ящиков с компонентами. \(i\)-ый ящик содержит компоненты с номерами от \(l_i\) до \(r_i\) включительно \((0\le l_i \le r_i \le 10^9)\). Никакие два ящика не содержат одинаковые компоненты. Беси хочет узнать, сколько уникальных микстур из трёх различных компонент она может создать. Две микстуры рассматриваются как различные, если хотя бы одна компонента есть в одной микстуре и отсутствует в другой. Ответ выводите по модулю \(10^9 + 7\).

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Первая строка содержит два целых числа \(N\) и \(K\).

Каждая из последующих \(N\) строк содержит два разделённых пробелом целых числа \(l_i\) и \(r_i\). Гарантируется, что ящики даются в порядке возрастания содержимого. а именно , \(r_i<l_{i+1}\) для каждого \(1\le i<N\).

ФОРМАТ ВЫВОДА (на экран / stdout):

Количество микстур из трёх различных компонент, которые Беси может создать по модулю \(10^9 + 7\).

SCORING

  • В тестах 3-4 \(\max(K,r_N)\le 10^4\).
  • В тестах 5-6 \(K=2^k-1\) для некоторого целого \(k\ge 1\).
  • В тестах 7-11 \(\max(K,r_N)\le 10^6\).
  • В тестах 12-16 \(N\le 20\).
  • В тестах 17-21 нет дополнительных ограничений.

Автор: Benjamin Qi

На Новый год Фермер Джон решил подарить своим коровам праздничное двоичное дерево поиска (BST)

Чтобы сгенерировать это BST, ФД начинает с перестановки \(a=\{a_1,a_2,\ldots,a_N\}\) целых чисел \(1\ldots N\), где \(N\le 300\). Затем он выполняет следующий псевдокод с аргументами \(1\) and \(N\).

generate(l,r):
  if l > r, return empty subtree;
  x = argminl <= i <= r ai; // index of min ai in {al,...,ar}
  return a BST with x as the root, 
    generate(l,x-1) as the left subtree,
    generate(x+1,r) as the right subtree;

Например, перестановка \(\{3,2,5,1,4\}\) сгенерирует такое BST

    4
   / \
  2   5
 / \ 
1   3

Пусть \(d_i(a)\) обозначает глубину вершины \(i\) в дереве, соотвествующем \(a\), то есть количество вершин на пути из \(a_i\) к корню. В примере выше, \(d_4(a)=1, d_2(a)=d_5(a)=2,\) and \(d_1(a)=d_3(a)=3\).

Количество инверсий \(a\) равно количеству пар целых чисел \((i,j)\), таких что \(1\le i<j\le N\) и \(a_i>a_j\). Коровы знают, что \(a\), которую ФД использовал для генерации BST, имеет ровно \(K\) инверсий \((0\le K\le \frac{N(N-1)}{2})\). Среди всех перестановок \(a\), удовлетворяющих этому условию, вычислите Остаток, когда \(\sum_ad_i(a)\) поделено на \(M\) для каждого \(1\le i\le N\).

ФОРМАТ ВВОДА (файл treedepth.in):

Единственная строка ввода содержит три разделённых одиночными пробелами целых числа: \(N, K\), \(M\), за которыми идёт перевод строки. \(M\) будет простым числом в интервале \([10^8,10^9+9]\).

ФОРМАТ ВЫВОДА (файл treedepth.out):

Выведите \(N\) разделённых одиночными пробелами целых чисел, обозначающих \(\sum_ad_i(a)\pmod{M}\) для каждого \(1\le i\le N.\)

ОЦЕНИВАНИЕ (по группам) :

  • Тесты 3-4 удовлетворяют \(N\le 8.\)
  • Тесты 5-7 удовлетворяют \(N\le 20.\)
  • Тесты 8-10 удовлетворяют \(N\le 50.\)

\(N\) (\(1 \leq N \leq 10^5\)) Є®а®ў ”Ґа¬Ґа  „¦®­  (а §«Ёз­® Ё¤Ґ­вЁдЁжЁа®ў ­­ле \(1 \ldots N\)), ўлбв஥­л ў ап¤. ”„ «оЎЁв, Є®Ј¤  ҐЈ® Є®а®ўл ўлбв஥­л Ї® ў®§а бв ­Ёо, ­® ᥩз б нв® ­Ґ в Є. ”„ ўл§лў Ґв Є®а®ўл Ї® ®¤­®©. Љ®Ј¤  Є®а®ў  ўл§ў ­ , ®­  Їа®ўҐапҐв, Ґб«Ё Є®а®ў  ­ҐЇ®б।б⢥­­® бЇа ў  ®в ­Ґс Ё¬ҐҐв ¬Ґ­миЁ© ID, в®Ј¤  ®­Ё ¬Ґ­повбп ¬Ґбв ¬Ё. ‡ вҐ¬, Ґб«Ё Є®а®ў  ­ҐЇ®б।б⢥­­® б«Ґў  ®в ­Ґс Ё¬ҐҐв Ў®«миЁ© ID, ®­Ё ¬Ґ­повбп ¬Ґбв ¬Ё. Љ®а®ў  ®бв ­ ў«Ёў Ґвбп ў в®зЄҐ, Є®Ј¤  Є®а®ў  б«Ґў  ®в ­Ґс Ё¬ҐҐв ¬Ґ­миЁ© ­®¬Ґа,   Є®а®ў  бЇа ў  ®в ­Ґс Ё¬ҐҐв Ў®«миЁ© ­®¬Ґа.

”„ е®зҐв ўлЎа вм Ї®¤¬­®¦Ґбвў® Є®а®ў, Ё § вҐ¬ Їа®ЁвҐаЁа®ў вмбп Ї® н⮬㠯®¤¬­®¦Ґбвўг, ўл§лў п Є ¦¤го Ё§ нвЁе Є®а®ў Ї® ®зҐаҐ¤Ё (ў Ї®ап¤ЄҐ ў®§а бв ­Ёп Ёе ID), ®Їпвм Ё ®Їпвм ¤® вҐе Ї®а, Ї®Є  ўбҐ Є®а®ўл ­Ґ бв ­гв ®вб®авЁа®ў ­л. Ќ ЇаЁ¬Ґа, Ґб«Ё ®­ ўлЎҐаҐв Ї®¤¬­®¦Ґбвў® Є®а®ў б ID \(\{2, 4, 5\}\), в® ®­ б­ з «  ўл§®ўҐв Є®а®ўг \(2\), § вҐ¬ Є®а®ўг \(4\), § вҐ¬ Є®а®ўг \(5\). …б«Ё ўбҐ \(N\) Є®а®ў Ґйс ­Ґ ®вб®авЁа®ў ­л, ®­ Ўг¤Ґв ўл§лў вм нвЁе Є®а®ў ®Їпвм Ё ®Їпвм, бЄ®«мЄ® ­г¦­® а §.

”„ е®зҐв ¬Ё­Ё¬Ё§Ёа®ў вм а §¬Ґа нв®Ј® ¬­®¦Ґбвў . Ѓ®«ҐҐ в®Ј®, Ї®бЄ®«мЄг ®­ бзЁв Ґв зЁб«® \(K\) бз бв«Ёўл¬, Ї®¬®ЈЁвҐ Ґ¬г ®ЇаҐ¤Ґ«Ёвм \(K\)-®Ґ «ҐЄбЁЄ®Ја дЁзҐбЄЁ ¬Ё­Ё¬ «м­®Ґ Ї®¤¬­®¦Ґбвў® ¬Ё­Ё¬ «м­®Ј® а §¬Ґа  в Є®Ґ, зв® ўл§лў п Ї®б«Ґ¤®ў вҐ«м­® Є®а®ў нв®Ј® Ї®¤¬­®¦Ґбвў  ­г¦­®Ґ Є®«ЁзҐбвў® а § ¬®¦­® ®вб®авЁа®ў вм ўбҐе Є®а®ў.

Џ®¤¬­®¦Ґбвў® \(S\) Ё§ \(\{1,\dots,N\}\) ­ §лў Ґвбп «ҐЄбЁЄ®Ја дЁзҐбЄЁ ¬Ґ­миҐ, 祬 Ї®¤¬­®¦Ґбвў® \(T\) Ґб«Ё бЇЁб®Є н«Ґ¬Ґ­в®ў ў \(S\) (ў Ї®ап¤ЄҐ ў®§а бв ­Ёп) «ҐЄбЁЄ®Ја дЁзҐбЄЁ ¬Ґ­миҐ, зҐ бЇЁб®Є н«Ґ¬Ґ­в®ў Ё§ \(T\) (ў Ї®ап¤ЄҐ ў®§а бв ­Ёп). Ќ ЇаЁ¬Ґа, \(\{1, 3, 6\}\) «ҐЄбЁЄ®Ја дЁзҐбЄЁ ¬Ґ­миҐ, 祬 \(\{1, 4, 5\}\).

ЋжҐ­Ёў ­ЁҐ: ‚ вҐбв е ­  \(3/16\) Ў ««®ў \(N \leq 6\) and \(K = 1\). ‚ ¤®Ї®«­ЁвҐ«м­ле вҐбв е ­  \(5/16\) Ў ««®ў, \(K = 1\). ‚ ¤®Ї®«­ЁвҐ«м­ле вҐбв е ­  \(8/16\) Ў ««®ў, ­Ґв ¤агЈЁе ®Ја ­ЁзҐ­Ё©.

”ЋђЊЂ’ ‚‚Ћ„Ђ (д ©« itout.in):

ЏҐаў п бва®Є  ᮤҐа¦Ёв ®¤­® 楫®Ґ зЁб«®, \(N\). ‚в®а п бва®Є  ᮤҐа¦Ёв ®¤­® 楫®Ґ зЁб«®, \(K\) (\(1 \leq K \leq 10^{18}\)). ’аҐвмп бва®Є  ᮤҐа¦Ёв \(N\) а §¤Ґ«с­­ле ®¤Ё­®з­л¬Ё Їа®ЎҐ« ¬Ё 楫ле зЁбҐ«, ЇаҐ¤бв ў«пойЁе ID Є®а®ў б«Ґў  ­ Їа ў®.

ѓ а ­вЁагҐвбп, Ўг¤Ґв Є Є ¬Ё­Ё¬г¬ \(K\) Є®а४в­ле Ї®¤¬­®¦Ґбвў.

”ЋђЊЂ’ ‚›‚Ћ„Ђ (д ©« itout.out):

ЏҐаў п бва®Є  ўлў®¤  ᮤҐа¦Ёв а §¬Ґа ¬Ё­Ё¬ «м­®Ј® Ї®¤¬­®¦Ґбвў . Ћбв ўиЁҐбп бва®ЄЁ ¤®«¦­л ᮤҐа¦ вм ID Є®а®ў ў \(K\)-®¬ «ҐЄбЁЄ®Ја дЁзҐбЄЁ ¬Ё­Ё¬ «м­®¬ Ї®¤¬­®¦Ґб⢥ ¬Ё­Ё¬ «м­®Ј® а §¬Ґа ,Ї® ®¤­®¬г ID ў бва®ЄҐ, ў Ї®ап¤ЄҐ ў®§а бв ­Ёп.

Џђ€Њ…ђ ‚‚Ћ„Ђ:

4 1
4 2 1 3

Џђ€Њ…ђ ‚›‚Ћ„Ђ:

2
1
4

Њл ­ зЁ­ Ґ¬ б ¬ ббЁў  \(\mathtt{\:4\:\; 2\:\; 1\:\; 3\:}\). Џ®в®¬ ”„ ўл§лў Ґв Є®а®ўг б ID 1Ў Ї®«гзЁвбп ¬ ббЁў \(\mathtt{\:1\:\; 4\:\; 2\:\; 3\:}\). Џ®в®¬ ”„ ўл§лў Ґв Є®а®ўг б ID 4 Ї®«гзЁвбп ¬ ббЁў \(\mathtt{\:1\:\; 2\:\; 3\:\; 4\:}\). ‚ нв®© в®зЄҐ ¬ ббЁў ®вб®авЁа®ў ­.

Problem credits: Spencer Compton

66165#66165
Ученики Школы №1232 обожают все праздники в году, так как школа всегда организует очень много всяких интересных активностей: конкурсов, викторин, квизов и так далее. И в очередном из праздников учителя захотели сделать интересную викторину: ученики находились на поле, когда начинала играть музыка, они перемещались в хаотичном порядке, когда заканчивала, через колонки называлось число K, что означало, что ученикам нужно было объединиться в группы из K человек, кто не успел, выбывали из игры. Далее игра снова продолжалась с теми учениками, которые остались.
Проблемой этой игры составлял выбор – с кем объединиться каждому ученику, так как абсолютно все ученики были дружелюбными и знали друг друга в школе.
Учителя всегда интересуются тем, как поведут себя ребята в стрессовой ситуации, потому запустили заранее дрон над полем, картинка с которого передавалась в программу, которая преобразовывала после окончания музыки снимок учеников сверху в набор координат в плоскости OXY. Далее находилась пара самых близких друг к другу двух учеников.
Напишите программу, которая на основании преобразованного снимка в координаты, выведет имена двух учеников, которые наиболее близки по расстоянию друг к другу на момент окончания музыки.

Входные данные
На первой строке подаётся целое число N (2 <= N <= 106).
Далее на N строках подаются данные каждого ученика: его имя, координата X, координата Y, все через пробел (координаты всегда целые).
Координаты в диапазоне от -104 до 104.
Выходные данные
Вывести на одной строке через пробел два имени учеников, которые наиболее приближены друг к другу на всём поле, чем все остальные. Имена выводить в алфавитном порядке.
Примечание:
·имена учеников всегда на английском языке для удобстваобработки;
·имена учеников всегда состоят только из одного слова итолько из букв латинского алфавита, без спецсимволов и прочих знаков;
·на одной координате не может быть двух учениководновременно;
·если пар подходящих для ответа несколько, то вывести ту,которая максимально приближена к координате (0;0);
·если и таких пар несколько, то вывести любую.

Дед Мороз предлагает Вове выбрать подарки на Новый год.

Перед мальчиком лежат \(n\) подарков в ряд. Каждый подарок характеризуется целым числом, у \(i\)-го подарка оно равно \(a_i\) — количество удовольствия, которое подарок принесёт Вове. Удовольствие может быть как положительным, так и отрицательным, а также равным нулю.

Дед Мороз предложил Вове выбрать два числа \(l\) и \(r\) таких, что \(1 \le l \le r \le n\), и взять все подарки с номерами от \(l\) до \(r\). Однако \(k\) подарков с максимальными характеристиками среди выбранных Вова должен отдать своей младшей сестре Маше. Остальные подарки Вова забирает себе.

Вова хочет выбрать числа \(l\) и \(r\) так, чтобы суммарное удовольствие от подарков, доставшихся именно ему, было максимальным. Общее удовольствие от набора подарков — это сумма значений \(a_i\) для подарков в наборе.

Помогите Вове выбрать числа \(l\) и \(r\) так, что \(1 \le l \le r \le n\), \(r - l + 1 \ge k\) и общее удовольствие от выбранных подарков без учёта подарков, доставшихся Маше, максимально.

Формат входных данных
В первой строке записаны два целых числа \(n\) и \(k\) (\(1 \le n \le 200\,000\), \(0 \le k \le \min(100, n)\)) — количество подарков перед Вовой и количество подарков, которые требуется отдать Маше.

Во второй строке заданы \(n\) целых чисел через пробел \(a_1, a_2, \ldots, a_n\) (\(-10^9 \le a_i \le 10^9\)) — количество удовольствия, приносимого подарками.

Формат выходных данных
Выведите единственное число — общее удовольствие от выбранных Вовой подарков без учёта тех, что достались Маше.

Замечание
В первом примере Вова ничего не должен отдавать Маше, поэтому он выберет \(l = 3\), \(r = 5\), и общее удовольствие от выбранных подарков будет равняться \(5 + (-1) + 7 = 11\).

Во втором примере Вова должен будет отдать Маше подарок с самым большим количеством удовольствия. Тогда он так же выберет \(l = 3\), \(r = 5\), однако общее удовольствие будет равняться \(5 + (-1) = 4\).

В третьем примере Вова должен отдать два подарка с наибольшими характеристиками. В таком случае одним из оптимальных вариантов будет выбрать \(l = 1\), \(r = 2\).

В тридесятом государстве ради сбора мытных денег (таможенных пошлин) с торговых людей царь Салтан указал сделать зáсеки – заградительный полосы, которые тянутся с севера на юг или с запада на восток и преграждают путь всякому пешему и конному.

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


Для удобства управления своей страной царь Салтан повелел разделить ее на непересекающиеся прямоугольные области с соблюдением следующих условий: 

1)    каждая засека входит полностью в границы областей
2)    число областей должно быть наименьшим, дабы уменьшить расходы на приказный люд.

Напишите программу, помогающую картографическому приказу построить искомое разбиение.

Входные данные
В первой строке находятся координаты северо-восточного угла страны, Во второй строке указано количество засек N (N≤1000). Каждая из следующих N строк содержит описание одной из засек в виде четверки числе x1, y1, x2, y2, что соответствует отрезку с концевыми точками (x1, y1)  и (x2, y2). Все координаты являются неотрицательными целыми и не превосходят 10000.

Выходные данные
В первую строку  выведите количество областей M в найденном разбиении. В последующих M строках должны находиться целочисленные координаты юго-западного и северо-восточного углов для каждой из областей разбиения. Числа внутри строки разделять пробелами.
 
С помощью изобретенной профессором машины Фарнсворт и Эми меняются телами с целью осуществить свои мечты: профессор жаждет острых ощущений, а Эми мечтает есть от пуза, не опасаясь за фигуру. Впоследствии выясняется, что обмен разумом между двумя телами возможен не более одного раза, и чтобы вернуться обратно в свои тела нужно произвести промежуточный обмен. Бендер предлагает свою помощь, однако, заполучив тело Эми, он тут же скрывается, чтобы под чужой личиной украсть корону императора Робо-Венгрии.

Эми, недовольная возможностями профессорского тела в плане обжорства, уговаривает поменяться Лилу. Фрай приходит в ужас. Лила обижена и обвиняет Фрая в том, что его заботит только ее внешность. Фрай в отместку меняется телами с Зойдбергом.

Бендер оказывается пойман при попытке ограбления, однако освобождается, убедив императора в том, что он - робот в теле человека. Узнав, что император втайне мечтает пожить немного жизнью простых людей, Бендер предлагает тому на время поменяться телами. Но так как Профессор уехал рисковать жизнью в теле Бендера, пришлось подсунуть императору вместо своего корпуса автоматизированное помойное ведро.

Фрай в теле Зойдберга и Лила в теле Профессора встречаются в ресторане, чтобы выяснить отношения. В конце концов они понимают, что любят друг друга вовсе не за внешность. При виде сцены их бурного примирения Эми, на этот раз уже в теле Гермеса, надолго теряет аппетит.

Бендер, поменявшись телами с правителем Робо-Венгрии, наслаждается жизнью на его яхте. Однако именно в этот вечер заговорщики совершают покушение на императора. Жизнь Бендеру спасает появление профессора Фарнсворта.

После того, как все герои решают свои личные проблемы, профессору с помощью Бубльгума Тэйта и Сладкого Клайда из команды "Ударники" удается вернуть всех в свои тела.


"Футурама". Десятый эпизод шестого сезона.

В очередной серии Футурамы было проведено несколько обменов разумами между телами героев,но, по крайней мере Бубльгум Тэйт и Сладкий Клайд в обменах не участвовали. Теперь необходимо вернутьразумы всех героев в свои тела. К сожалению, два тела могут участвовать только в одном обмене,поэтому обратные обмены для этого произвести невозможно. Например, если тело 1поменялось разумом с телом 2, а потом тело 1 поменялось разумом с телом 3,то в теле 1 находится разум третьего героя, в теле 2 - разум первого героя,а в теле 3 - второго.Теперь можно произвести обмен разумами только между телами 2 и 3, тогда разум второго героявернется в свое тело, а первому и третьему героям могут помочь только Тэйт с Клайдом.

Помогите героям Футурамы вернуться в свои тела.

Входные данные
Во входном файле записаны целые числа N (4 ≤ N ≤ 20) и M(1 ≤ M ≤ 100) - количество героев Футурамы и количество произведенных обменов разумами.Герои занумерованы числами от 1 до N, изначально разум каждого из героев находится в своем теле. В последующих M строчках записана последовательность совершенных обменов разумами. Каждый обмен описывается двумя различными числами - номерами тел, которые, в этом обмене меняются разумами. Бубльгум Тэйт и Сладкий Клайд, как наиболее разумные герои, имеют номера N−1 и N, и гарантируется, что в исходных обменах они не участвовали.

Решения, верно работающие в случаях, когда каждое тело участвовало в обмене не больше одного раза будут набирать не менее 40 баллов.

Выходные данные
Выведите план обменов для возвращения разумов героев в свои телав виде пар различных чисел - номеров тел которые участвовали в соответствующем обмене.Причем никакие два тела не должны обмениваться между собой разумами более одного раза,включая исходные обмены. Если обменов не требуется, то можно ничего не выводить.Если планов обменов несколько, то выведите любой из них (не обязательно минимальный).

Вернуть разумы героев в свои тела всегда возможно.

Примечание
Приведем таблицу положения героев в телах после каждого из обменов:
Обмен Тело 1 Тело 2 Тело 3 Тело 4
До обменов 1 2 3 4
1-2 2 1 3 4
1-3 3 1 2 4
2-4 3 4 2 1
1-4 1 4 2 3
2-3 1 2 4 3
3-4 1 2 3 4
 
Примеры
Входные данные Выходные данные
1 4 1
1 2
1 3 
2 4
1 4
2 3
3 4
Поделиться
Класснуть