题库练习 Grocer's Problem
← 上一题 下一题 →

A8259 | Grocer's Problem

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Yesterday was a fair in a supermarket's grocery section. There were $n$ jars with spices on the fair. Before the event the jars were numbered from $1$ to $n$ 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 $5$ 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 $2$ , $6$ , $5$ , $4$ , $3$ , $1$ one can get permutation $1$ , $2$ , $3$ , $4$ , $5$ , $6$ , if pick the jars on the positions $1$ , $2$ , $3$ , $5$ and $6$ .

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 $n$ ( $1<=n<=10^{5}$ ). The second line contains $n$ space-separated integers $a_{i}$ ( $1<=a_{i}<=n$ ) — the $i$ -th number represents the number of a jar that occupies the $i$ -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 ( $k$ ), on the second line indicate from which positions the jars need to be taken ( $b_{1},b_{2},...,b_{k}$ ), on the third line indicate the jar's new order ( $c_{1},c_{2},...,c_{k}$ ). After the operation is fulfilled the jar from position $b_{i}$ will occupy the position $c_{i}$ . The set ( $c_{1},c_{2},...,c_{k}$ ) should be the rearrangement of the set ( $b_{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 
C++ 编辑器
输入
输出