Codeforces Beta Round 75 (Div. 1 Only)
D
Grocer's Problem
Codeforces
2600
原题
← CE →
翻译中…

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?

翻译中…

Input

翻译中…

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.

翻译中…

Output

翻译中…

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.

翻译中…

Note

翻译中…

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

翻译中…

During the first action we take the jars from positions $1$, $3$, $6$ and $4$ and put them so that the jar that used to occupy the position $1$ will occupy the position $3$ after the operation is completed. The jar from position $3$ will end up in position $6$, the jar from position $6$ will end up in position $4$ and the jar from position $4$ will end up in position $1$.

翻译中…

After the first action the order will look like that: $1$, $5$, $3$, $4$, $2$, $6$.

翻译中…

During the second operation the jars in positions $2$ and $5$ will change places.

翻译中…

样例

Input #1
6
3 5 6 1 2 4
Output #1
2
4
1 3 6 4
3 6 4 1
2
2 5
5 2
InputCopy OutputCopy
Input #2
14
9 13 11 3 10 7 12 14 1 5 4 6 8 2
Output #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
InputCopy OutputCopy
题目信息
题号
91D
时间限制
2 s
内存限制
256 MB
标签
构造
图论
贪心

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。