Перестроения
시간 제한2초메모리 제한1024 MB
시작 순열과 목표 순열이 주어질 때, 선택한 부분집합을 앞으로 뒤집어 옮기는 연산을 15회 이하로 사용해 순서를 바꾼다.
문제
Для победы над злобным клоуном в финальном сражении, Майк созвал всех своих друзей. Осталось только определиться с тактикой ведения боя, и победа в кармане.
Всего в бою будет участвовать друзей. Для эффективности ведения боя пронумеруем их от до . Исходно друзья выстроились в ряд, причем на -е место в ряду встал друг с номером . После долгих размышлений, Майк пришел к выводу, что наиболее эффективное расположение друзей будет достигнуто, если на -м месте в ряду будет стоять друг с номером .
Для того, чтобы изменить порядок друзей в ряду, Майк может совершить несколько перестроений. Каждое перестроение происходит следующим образом: Майк выбирает некоторое непустое подмножество друзей, после чего эти друзья выходят из ряда и встают в его начало в порядке, обратном тому, в котором они стояли исходно. При этом порядок друзей, которые остались стоять в ряду, не меняется.
Например, если друзья стояли в порядке , а Майк выбрал друзей с номерами , после перестроения друзья будут стоять в порядке .
Бой с Пеннивайзом начнется довольно скоро, поэтому Майк хочет расположить друзей в желаемом порядке не более, чем за перестроений. Помогите ему справиться с этой задачей!
Обратите внимание, что минимизировать количество перестроений не требуется. Гарантируется, что, за не более чем перестроений, добиться желаемого порядка возможно.
입력
В первой строке дано одно целое число --- количество друзей в ряду ().
Вторая строка содержит различных целых чисел от до --- исходный порядок друзей в ряду (). Третья строка содержит различных целых чисел от до --- желаемый порядок друзей в ряду ().
출력
В первой строке выведите целое число () --- количество перестроений в найденном решении. В каждой из следующих строк выведите описание перестроений, которые необходимо совершить. Для каждого перестроения сначала выведите число --- количество друзей, которые должны выйти из ряда (), а затем различных целых чисел от до --- номера друзей, которые должны выйти из ряда. Номера можно выводить в произвольном порядке.
힌트
В первом тесте порядок друзей изменяется следующим образом:
Во втором тесте порядок друзей изменяется следующим образом: