luogu#P8223. [WFOI - 02] I wanna moqueve(位移序列)

    ID: 12218 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>洛谷原创Special JudgeO2优化随机贪心,随机化构造洛谷月赛

[WFOI - 02] I wanna moqueve(位移序列)

题目背景

It's my fiesta.

一场前,kid 在 WFOIR1 的地图上,折戟沉沙;一场后,kid 从倒下的地方爬起。

kid 成功了,他不再是从前那个他了。

简化题意:Link\texttt{Link}

为什么做完这题你不去做做这题

题目描述

kid 需要在一台奇怪的电脑上排序一个 1n1\sim n 的排列,下一个存档点才会出现。

kid 可以选择一个数 xx,然后接下来的每次操作,kid 可以向左或向右循环位移一段长为 xx 的序列(最左/右边的会平移至最右/左边)(位移量是 11)。

如果 kid 的操作次数超过了 23×n23\times n,排列就会爆炸,kid 将会再次倒下。所以,请告诉 kid 一种还原序列的方案,剩下的操作就交给 €€£ 吧!

输入格式

输入共 22 行:

第一行一个整数 nn,表示序列长度。

第二行 nn 个整数,表示序列 aa

输出格式

输出共 m+2m + 2 行。

前两行每行 11 个数,分别是 x,mx,mmm 表示操作次数。

接下来 mm 行,每行两个数,前一个数表示平移区间左端点,后一个数表示方向,00 为向左,11 为向右;

本题采用 SPJ\text{SPJ},只要循环位移操作正确即可给分。

3
2 3 1
2
2
2 0
1 0
5
4 2 3 5 1
3
3
3 1
1 1
2 0

提示

  • 样例 11 解释:

    左移 (2,3)(2,3) 序列变成 2,1,32,1,3

    左移 (1,2)(1,2) 序列变成 1,2,31,2,3

  • 样例 22 解释:

    右移 (3,5)(3,5) 序列变成 4,2,1,3,54,2,1,3,5

    右移 (1,3)(1,3) 序列变成 1,4,2,3,51,4,2,3,5

    左移 (2,4)(2,4) 序列变成 1,2,3,4,51,2,3,4,5

本题采用 Subtask 捆绑测试。

Subtask 编号 数据规模与约定
Subtask #0 (1 pts\texttt{1 pts}) n=1n=1
Subtask #1 (2 pts\texttt{2 pts}) n=2n=2
Subtask #2 (3 pts\texttt{3 pts}) n=3n=3
Subtask #3 (4 pts\texttt{4 pts}) n=4n=4
Subtask #4 (20 pts\texttt{20 pts}) 1n501\le n\le 50
Subtask #5 (20 pts\texttt{20 pts}) 1n1001\le n\le 100
Subtask #6 (50 pts\texttt{50 pts}) 1n1031\le n\le 10^3

对于 100%100\% 的数据,1n,ai1031\le n,a_i\le 10^3,数据保证 aa 是一个 1n1\sim n 的排列。