#CF2193B. Reverse a Permutation
Reverse a Permutation
题目描述
一个长度为 的排列是由 到 的 个不同整数按任意顺序组成的数组。例如, 是一个排列,但 和 不是排列。
给定一个长度为 的排列 。你可以恰好执行一次以下操作:
-
选择两个整数 ()。
-
反转排列 中 这一段。
你的任务是输出执行此操作后可以得到的字典序最大的排列。排列 字典序大于排列 当且仅当在它们第一个不同的位置 上,有 。
输入格式
每个测试包含多个测试用例。第一行包含一个整数 ()—— 测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含数字 ()。
每个测试用例的第二行包含 个不同的整数 ()。
保证所有测试用例的 值之和不超过 。
输出格式
对于每个测试用例,输出通过一次操作可以得到的字典序最大的排列。
样例
4
4
3 2 1 4
3
3 1 2
4
4 3 2 1
2
2 1
4 1 2 3
3 2 1
4 3 2 1
2 1
样例说明
对于第一个测试用例,最优的区间是 。反转后,。对于第二个测试用例,最优的区间是 。反转后,。
由 DeepSeek 完成翻译
来源
Codeforces 2193B,英文题名 Reverse a Permutation。