Logo
(追記) (追記ここまで)

28723번 - Перестроения 스페셜 저지다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB63266.667%

문제

Для победы над злобным клоуном в финальном сражении, Майк созвал всех своих друзей. Осталось только определиться с тактикой ведения боя, и победа в кармане.

Всего в бою будет участвовать $n$ друзей. Для эффективности ведения боя пронумеруем их от 1ドル$ до $n$. Исходно друзья выстроились в ряд, причем на $i$-е место в ряду встал друг с номером $a_i$. После долгих размышлений, Майк пришел к выводу, что наиболее эффективное расположение друзей будет достигнуто, если на $i$-м месте в ряду будет стоять друг с номером $b_i$.

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

Например, если друзья стояли в порядке 3,ドル 4, 7, 6, 2, 5, 1,ドル а Майк выбрал друзей с номерами 4,ドル 7, 5,ドル после перестроения друзья будут стоять в порядке 5,ドル 7, 4, 3, 6, 2, 1$.

Бой с Пеннивайзом начнется довольно скоро, поэтому Майк хочет расположить друзей в желаемом порядке не более, чем за 15ドル$ перестроений. Помогите ему справиться с этой задачей!

Обратите внимание, что минимизировать количество перестроений не требуется. Гарантируется, что, за не более чем 15ドル$ перестроений, добиться желаемого порядка возможно.

입력

В первой строке дано одно целое число $n$ --- количество друзей в ряду (1ドル \le n \le 10,000円$).

Вторая строка содержит $n$ различных целых чисел $a_i$ от 1ドル$ до $n$ --- исходный порядок друзей в ряду (1ドル \le a_i \le n$). Третья строка содержит $n$ различных целых чисел $b_i$ от 1ドル$ до $n$ --- желаемый порядок друзей в ряду (1ドル \le b_i \le n$).

출력

В первой строке выведите целое число $k$ (0ドル \le k \le 15$) --- количество перестроений в найденном решении. В каждой из следующих $k$ строк выведите описание перестроений, которые необходимо совершить. Для каждого перестроения сначала выведите число $c_i$ --- количество друзей, которые должны выйти из ряда (1ドル \le c_i \le n$), а затем $c_i$ различных целых чисел от 1ドル$ до $n$ --- номера друзей, которые должны выйти из ряда. Номера можно выводить в произвольном порядке.

제한

예제 입력 1

5
5 4 3 2 1
3 4 5 1 2

예제 출력 1

4
5 1 2 3 4 5
1 5
1 4
1 3

예제 입력 2

7
3 4 7 6 2 5 1
2 6 3 4 5 7 1

예제 출력 2

3
3 6 5 7
3 3 4 5
3 2 6 3

노트

В первом тесте порядок друзей изменяется следующим образом:

5,ドル 4, 3, 2, 1 \rightarrow 1, 2, 3, 4, 5 \rightarrow 5, 1, 2, 3, 4 \rightarrow 4, 5, 1, 2, 3 \rightarrow 3, 4, 5, 1, 2$

Во втором тесте порядок друзей изменяется следующим образом:

3,ドル 4, 7, 6, 2, 5, 1 \rightarrow 5, 6, 7, 3, 4, 2, 1 \rightarrow 4, 3, 5, 6, 7, 2, 1 \rightarrow 2, 6, 3, 4, 5, 7, 1$

출처

Olympiad > Russian Olympiad in Informatics > Internet Olympiads in Informatics > 2019-2020 Season > October 5, 2019 J번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /