题库练习 Reverse a Permutation
← 上一题 下一题 →

A16772 | Reverse a Permutation

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

题目描述

一个长度为 $ n $ 的排列是由 $ 1 $ 到 $ n $ 的 $ n $ 个不同整数按任意顺序组成的数组。例如,$ [2,3,1,5,4] $ 是一个排列,但 $ [1,2,2] $ 和 $ [1,3,4] $ 不是排列。

给定一个长度为 $ n $ 的排列 $ p $。你可以恰好执行一次以下操作:

- 选择两个整数 $ l, r $($ 1\le l\le r\le n $)。

- 反转排列 $ p $ 中 $ [l, r] $ 这一段。

你的任务是输出执行此操作后可以得到的字典序最大的排列。排列 $ a $ 字典序大于排列 $ b $ 当且仅当在它们第一个不同的位置 $ i $ 上,有 $ a_i \gt b_i $。

输入格式

每个测试包含多个测试用例。第一行包含一个整数 $ t $($ 1\le t\le 10^4 $)—— 测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含数字 $ n $($ 1\le n\le 2\cdot 10^5 $)。

每个测试用例的第二行包含 $ n $ 个不同的整数 $ p_1, p_2,\dots,p_n $($ 1\le p_i\le n $)。

保证所有测试用例的 $ n $ 值之和不超过 $ 2\cdot 10^5 $。

输出格式

对于每个测试用例,输出通过一次操作可以得到的字典序最大的排列。

输入输出样例

输入 #1
4
4
3 2 1 4
3
3 1 2
4
4 3 2 1
2
2 1
输出 #1
4 1 2 3 
3 2 1 
4 3 2 1 
2 1
C++ 编辑器
输入
输出