#1435. 旋转排列

旋转排列

题目描述

若一个长度为 nn 的序列包含 1n1 \sim n 的所有整数,则这个序列称为 nn 的一个排列。

对于一个排列 pp,定义一次 shift\text{shift} 操作:将 pp 中的每一个数都依次向后移动一位,并把最后一个数字移动到开头。

例如,若排列 pp 初始时为 1,4,2,31,4,2,3,则进行一次 shift\text{shift} 操作后变为 3,1,4,23,1,4,2

现在给出一个排列 pp,请你重复执行以下两步操作:

  1. 对当前的排列 pp 执行一次 shift\text{shift} 操作,并输出此次得到的新排列(每个数以空格分隔,且本次输出独占一行);
  2. 判断当前排列 pp 的最后一个数字是否等于 pp,如果是,则结束程序;否则返回步骤 11

输入格式

第一行:一个整数 pp,表示排列 pp 的长度。
第二行:pp 个整数,分别表示初始时排列 pp 中的每一个数。

输出格式

按照题目描述中的要求输出。

4
1 4 2 3
3 1 4 2
2 3 1 4
3
1 2 3
3 1 2
2 3 1
1 2 3
10
1 7 6 5 8 4 3 9 10 2
2 1 7 6 5 8 4 3 9 10

数据规模与约定

各测试点的信息如下表:

测试点编号 pp 特殊约定
11
22
33
464 \sim 6 20002000 pn1=np_{n - 1} = n
7107 \sim 10

对全部的测试点,保证 1p20001≤p≤2000