CF1427D.Unshuffling a Deck

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a deck of nn cards numbered from 11 to nn (not necessarily in this order in the deck). You have to sort the deck by repeating the following operation.

  • Choose 2kn2 \le k \le n and split the deck in kk nonempty contiguous parts D1,D2,,DkD_1, D_2,\dots, D_k ( D1D_1 contains the first D1|D_1| cards of the deck, D2D_2 contains the following D2|D_2| cards and so on). Then reverse the order of the parts, transforming the deck into Dk,Dk1,,D2,D1D_k, D_{k-1}, \dots, D_2, D_1 (so, the first Dk|D_k| cards of the new deck are DkD_k , the following Dk1|D_{k-1}| cards are Dk1D_{k-1} and so on). The internal order of each packet of cards DiD_i is unchanged by the operation.

You have to obtain a sorted deck (i.e., a deck where the first card is 11 , the second is 22 and so on) performing at most nn operations. It can be proven that it is always possible to sort the deck performing at most nn operations.

Examples of operation: The following are three examples of valid operations (on three decks with different sizes).

  • If the deck is [3 6 2 1 4 5 7] (so 33 is the first card and 77 is the last card), we may apply the operation with k=4k=4 and D1=D_1= [3 6], D2=D_2= [2 1 4], D3=D_3= [5], D4=D_4= [7]. Doing so, the deck becomes [7 5 2 1 4 3 6].
  • If the deck is [3 1 2], we may apply the operation with k=3k=3 and D1=D_1= [3], D2=D_2= [1], D3=D_3= [2]. Doing so, the deck becomes [2 1 3].
  • If the deck is [5 1 2 4 3 6], we may apply the operation with k=2k=2 and D1=D_1= [5 1], D2=D_2= [2 4 3 6]. Doing so, the deck becomes [2 4 3 6 5 1].

输入格式

The first line of the input contains one integer nn ( 1n521\le n\le 52 ) — the number of cards in the deck.

The second line contains nn integers c1,c2,,cnc_1, c_2, \dots, c_n — the cards in the deck. The first card is c1c_1 , the second is c2c_2 and so on.

It is guaranteed that for all i=1,,ni=1,\dots,n there is exactly one j{1,,n}j\in\{1,\dots,n\} such that cj=ic_j = i .

输出格式

On the first line, print the number qq of operations you perform (it must hold 0qn0\le q\le n ).

Then, print qq lines, each describing one operation.

To describe an operation, print on a single line the number kk of parts you are going to split the deck in, followed by the size of the kk parts: D1,D2,,Dk|D_1|, |D_2|, \dots , |D_k| .

It must hold 2kn2\le k\le n , and Di1|D_i|\ge 1 for all i=1,,ki=1,\dots,k , and D1+D2++Dk=n|D_1|+|D_2|+\cdots + |D_k| = n .

It can be proven that it is always possible to sort the deck performing at most nn operations. If there are several ways to sort the deck you can output any of them.

输入输出样例

  • 输入#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

说明/提示

Explanation of the first testcase: Initially the deck is [3 1 2 4].

  • The first operation splits the deck as [(3) (1 2) (4)] and then transforms it into [4 1 2 3].
  • The second operation splits the deck as [(4) (1 2 3)] and then transforms it into [1 2 3 4].

Explanation of the second testcase: Initially the deck is [6 5 4 3 2 1]. - The first (and only) operation splits the deck as [(6) (5) (4) (3) (2) (1)] and then transforms it into [1 2 3 4 5 6].

首页