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番目のカードが $2$、……となるデッキ)を得る必要があります。この問題の制約下において、最大 $120$ 回の操作でデッキをソートすることは常に可能であることが証明できます。

操作の例:以下は、異なるサイズの3つのデッキに対する有効な操作の例です。

  • デッキが $[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]$ となります。

入力

入力の1行目には、デッキ内のカードの枚数を表す整数 $n$ ($1 \le n \le 20\,000$) が含まれます。 2行目には、$n$ 個の整数 $c_1, c_2, \dots, c_n$ が含まれます。これらはデッキ内のカードであり、最初のカードが $c_1$、2番目のカードが $c_2$ となります。 すべての $i \in \{1, \dots, n\}$ に対して、$c_j = i$ となる $j \in \{1, \dots, n\}$ がちょうど1つ存在することが保証されます。

出力

1行目に、実行する操作の回数 $q$ ($0 \le q \le 120$ を満たす必要がある) を出力してください。 続いて、$q$ 行にわたり、各操作の内容を出力してください。 操作を記述するには、1行にデッキを分割する部分の数 $k$ を出力し、続いて $k$ 個の部分のサイズ $|D_1|, |D_2|, \dots, |D_k|$ を出力してください。 $2 \le k \le n$、すべての $i \in \{1, \dots, k\}$ に対して $|D_i| \ge 1$、かつ $|D_1| + |D_2| + \dots + |D_k| = n$ を満たす必要があります。

この問題の制約下において、最大 $120$ 回の操作でデッキをソートすることは常に可能であることが証明できます。デッキをソートする方法が複数ある場合は、そのうちのどれを出力しても構いません。 $q$ を最小化する必要はないことに注意してください。

入出力例

入出力例 1

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

入出力例 2

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

入出力例 3

1
1
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.