CF91D.Grocer's Problem

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Yesterday was a fair in a supermarket's grocery section. There were nn jars with spices on the fair. Before the event the jars were numbered from 11 to nn from the left to the right. After the event the jars were moved and the grocer had to sort them by the increasing of the numbers.

The grocer has a special machine at his disposal. The machine can take any 55 or less jars and rearrange them in the way the grocer wants. Note that the jars do not have to stand consecutively. For example, from the permutation 22 , 66 , 55 , 44 , 33 , 11 one can get permutation 11 , 22 , 33 , 44 , 55 , 66 , if pick the jars on the positions 11 , 22 , 33 , 55 and 66 .

Which minimum number of such operations is needed to arrange all the jars in the order of their numbers' increasing?

输入格式

The first line contains an integer nn ( 1<=n<=1051<=n<=10^{5} ). The second line contains nn space-separated integers aia_{i} ( 1<=ai<=n1<=a_{i}<=n ) — the ii -th number represents the number of a jar that occupies the ii -th position. It is guaranteed that all the numbers are distinct.

输出格式

Print on the first line the least number of operations needed to rearrange all the jars in the order of the numbers' increasing. Then print the description of all actions in the following format.

On the first line of the description of one action indicate the number of jars that need to be taken ( kk ), on the second line indicate from which positions the jars need to be taken ( b1,b2,...,bkb_{1},b_{2},...,b_{k} ), on the third line indicate the jar's new order ( c1,c2,...,ckc_{1},c_{2},...,c_{k} ). After the operation is fulfilled the jar from position bib_{i} will occupy the position cic_{i} . The set ( c1,c2,...,ckc_{1},c_{2},...,c_{k} ) should be the rearrangement of the set ( b1,b2,...,bkb_{1},b_{2},...,b_{k} ).

If there are multiple solutions, output any.

输入输出样例

  • 输入#1

    6
    3 5 6 1 2 4
    

    输出#1

    2
    4
    1 3 6 4 
    3 6 4 1 
    2
    2 5 
    5 2 
    
  • 输入#2

    14
    9 13 11 3 10 7 12 14 1 5 4 6 8 2
    

    输出#2

    3
    4
    2 13 8 14 
    13 8 14 2 
    5
    6 7 12 5 10 
    7 12 6 10 5 
    5
    3 11 4 1 9 
    11 4 3 9 1 
    

说明/提示

Let's consider the first sample. The jars can be sorted within two actions.

During the first action we take the jars from positions 11 , 33 , 66 and 44 and put them so that the jar that used to occupy the position 11 will occupy the position 33 after the operation is completed. The jar from position 33 will end up in position 66 , the jar from position 66 will end up in position 44 and the jar from position 44 will end up in position 11 .

After the first action the order will look like that: 11 , 55 , 33 , 44 , 22 , 66 .

During the second operation the jars in positions 22 and 55 will change places.

首页