QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 256 MB مجموع النقاط: 100
الإحصائيات

$1$부터 $n$까지의 숫자가 적힌 $n$장의 카드 덱이 주어집니다(덱 내의 순서는 반드시 정렬되어 있지 않을 수 있습니다). 다음 연산을 반복하여 덱을 정렬해야 합니다.

$2 \le k \le n$을 선택하고 덱을 $k$개의 비어 있지 않은 연속된 부분 $D_1, D_2, \dots, D_k$로 나눕니다($D_1$은 덱의 처음 $|D_1|$장의 카드를 포함하고, $D_2$는 그다음 $|D_2|$장의 카드를 포함하는 식입니다). 그런 다음 부분들의 순서를 뒤집어 덱을 $D_k, D_{k-1}, \dots, D_2, D_1$로 변환합니다(즉, 새로운 덱의 처음 $|D_k|$장의 카드는 $D_k$가 되고, 그다음 $|D_{k-1}|$장의 카드는 $D_{k-1}$이 되는 식입니다). 각 카드 묶음 $D_i$ 내부의 순서는 연산에 의해 변하지 않습니다.

최대 $120$번의 연산을 수행하여 정렬된 덱(첫 번째 카드가 $1$, 두 번째 카드가 $2$인 상태)을 만들어야 합니다. 이 문제의 제한 조건 하에서 최대 $120$번의 연산으로 덱을 정렬하는 것은 항상 가능함이 증명되어 있습니다.

연산의 예시: 다음은 유효한 연산의 세 가지 예시입니다(서로 다른 크기의 세 덱에 대해).

  • 덱이 $[3\ 6\ 2\ 1\ 4\ 5\ 7]$인 경우(3이 첫 번째 카드, 7이 마지막 카드), $k=4$로 연산을 수행하여 $D_1=[3\ 6]$, $D_2=[2\ 1\ 4]$, $D_3=[5]$, $D_4=[7]$로 나눌 수 있습니다. 이렇게 하면 덱은 $[7\ 5\ 2\ 1\ 4\ 3\ 6]$이 됩니다.
  • 덱이 $[3\ 1\ 2]$인 경우, $k=3$으로 연산을 수행하여 $D_1=[3]$, $D_2=[1]$, $D_3=[2]$로 나눌 수 있습니다. 이렇게 하면 덱은 $[2\ 1\ 3]$이 됩니다.
  • 덱이 $[5\ 1\ 2\ 4\ 3\ 6]$인 경우, $k=2$로 연산을 수행하여 $D_1=[5\ 1]$, $D_2=[2\ 4\ 3\ 6]$으로 나눌 수 있습니다. 이렇게 하면 덱은 $[2\ 4\ 3\ 6\ 5\ 1]$이 됩니다.

입력

첫 번째 줄에는 덱에 있는 카드의 개수 $n$ ($1 \le n \le 20\,000$)이 주어집니다. 두 번째 줄에는 $n$개의 정수 $c_1, c_2, \dots, c_n$이 주어집니다. 첫 번째 카드는 $c_1$, 두 번째 카드는 $c_2$와 같습니다. 모든 $i \in \{1, \dots, n\}$에 대하여 $c_j = i$를 만족하는 $j \in \{1, \dots, n\}$가 정확히 하나 존재함이 보장됩니다.

출력

첫 번째 줄에 수행할 연산의 횟수 $q$를 출력합니다($0 \le q \le 120$을 만족해야 합니다). 그다음, 각 연산을 설명하는 $q$개의 줄을 출력합니다. 연산을 설명하려면, 한 줄에 덱을 나눌 부분의 개수 $k$를 출력하고, 이어서 $k$개 부분의 크기 $|D_1|, |D_2|, \dots, |D_k|$를 출력합니다. $2 \le k \le n$이어야 하며, 모든 $i=1, \dots, k$에 대해 $|D_i| \ge 1$이고 $|D_1| + |D_2| + \dots + |D_k| = n$이어야 합니다. 이 문제의 제한 조건 하에서 최대 $120$번의 연산으로 덱을 정렬하는 것은 항상 가능함이 증명되어 있습니다. 덱을 정렬하는 방법이 여러 가지라면 그중 아무거나 출력해도 됩니다. $q$를 최소화할 필요는 없습니다.

예제

예제 입력 1

4
3 1 2 4

예제 출력 1

2
3 1 2 1
2 1 3

예제 입력 2

6
6 5 4 3 2 1

예제 출력 2

1
6 1 1 1 1 1 1

예제 입력 3

1
1

예제 출력 3

0

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#613Editorial Open集训队作业 解题报告 by 王一策Qingyu2026-01-02 23:10:06 Download
#592Editorial Open集训队作业 解题报告 by 孙梓航Qingyu2026-01-02 22:41:14 Download
#322EditorialOpen题解jiangly2025-12-14 07:04:55View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.