Lyft Level 5 Challenge 2018 - Final Round
E
Grid Sort
Codeforces
3100
原题
← DF →
翻译中…

You are given an $n \times m$ grid. Each grid cell is filled with a unique integer from $1$ to $nm$ so that each integer appears exactly once.

翻译中…

In one operation, you can choose an arbitrary cycle of the grid and move all integers along that cycle one space over. Here, a cycle is any sequence that satisfies the following conditions:

翻译中…
  • There are at least four squares.
  • Each square appears at most once.
  • Every pair of adjacent squares, and also the first and last squares, share an edge.
翻译中…

For example, if we had the following grid:

翻译中…

image

翻译中…

We can choose an arbitrary cycle like this one:

翻译中…

image

翻译中…

To get the following grid:

翻译中…

image

翻译中…

In this particular case, the chosen cycle can be represented as the sequence $[1, 2, 3, 6, 5, 8, 7, 4]$, the numbers are in the direction that we want to rotate them in.

翻译中…

Find any sequence of operations to sort the grid so that the array created by concatenating the rows from the highest to the lowest is sorted (look at the first picture above).

翻译中…

Note you do not need to minimize number of operations or sum of cycle lengths. The only constraint is that the sum of all cycles lengths must not be greater than $10^5$. We can show that an answer always exists under the given constraints. Output any valid sequence of moves that will sort the grid.

翻译中…

Input

翻译中…

The first line contains two integers $n$ and $m$ ($3 \leq n,m \leq 20$) — the dimensions of the grid.

翻译中…

Each of the next $n$ lines contains $m$ integers $x_{i,1}, x_{i,2}, \ldots, x_{i, m}$ ($1 \leq x_{i,j} \leq nm$), denoting the values of the block in row $i$ and column $j$.

翻译中…

It is guaranteed that all $x_{i,j}$ are distinct.

翻译中…

Output

翻译中…

First, print a single integer $k$, the number of operations ($k \geq 0$).

翻译中…

On each of the next $k$ lines, print a cycle as follows:

翻译中…

$$s\ y_1\ y_2\ \ldots\ y_s$$

翻译中…

Here, $s$ is the number of blocks to move ($s \geq 4$). Here we have block $y_1$ moving to where block $y_2$ is, block $y_2$ moving to where block $y_3$ is, and so on with block $y_s$ moving to where block $y_1$ is.

翻译中…

The sum of $s$ over all operations must be at most $10^5$.

翻译中…

Note

翻译中…

The first sample is the case in the statement. Here, we can use the cycle in reverse order to sort the grid.

翻译中…

样例

Input #1
3 3
4 1 2
7 6 3
8 5 9
Output #1
1
8 1 4 7 8 5 6 3 2
InputCopy OutputCopy
Input #2
3 5
1 2 3 5 10
11 6 4 14 9
12 7 8 13 15
Output #2
3
4 4 14 13 8
4 5 10 9 4
4 12 7 6 11
InputCopy OutputCopy
题目信息
题号
1044E
时间限制
2 s
内存限制
256 MB
标签
模拟

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