CF2156F1.Strange Operation (Easy Version)

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

这是本题的简单版本。本版本与其他版本的区别在于 nn 的限制更小。只有完成了所有版本的题目,你才能 hack 本题。

给定一个长度为 nn 的排列 pp。你可以进行如下操作任意次(也可以不做):

  • 选择三个互不相同的下标 ii,jj,kk,满足 1≤i<j<k≤n1 \le i < j < k \le n,并且同时满足以下两个条件:pi=max⁡(pj,pk)+1p_i = \max(p_j, p_k) + 1 并且 pi=min⁡(pj,pk)+2p_i = \min(p_j, p_k) + 2。然后,将 pip_i 减去 22,pjp_j 和 pkp_k 都加上 11。形式化地,pi:=pi−2p_i := p_i - 2,pj:=pj+1p_j := p_j + 1,pk:=pk+1p_k := p_k + 1。

可以证明,通过上述操作后 pp 仍然是一个排列,因为满足 pi=max⁡(pj,pk)+1p_i = \max(p_j, p_k) + 1 和 pi=min⁡(pj,pk)+2p_i = \min(p_j, p_k) + 2 两个条件。

你的任务是,在任意次操作后,求出可以得到的字典序最小的排列。

∗^{\text{∗}} 长度为 nn 的排列是由 11 到 nn 的所有整数按任意顺序排列而成的数组。例如,[2,3,1,5,4][2,3,1,5,4] 是一个排列,而 [1,2,2][1,2,2] 不是(22 出现了两次),[1,3,4][1,3,4] 也不是排列(n=3n=3,但有 44 出现)。

†^{\text{†}} 若有两个长度相等的序列 aa 和 bb,若 a≠ba \ne b 且在第一个不同的位置,aa 对应的元素小于 bb 对应的元素,则称 aa 的字典序小于 bb。

输入格式

每组测试数据可能包含多组测试用例。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的组数。

每组测试用例的第一行包含一个整数 nn(3≤n≤20003 \le n \le 2000),表示排列 pp 的长度。

第二行包含 nn 个整数 p1,p2,…,pnp_1, p_2, \ldots, p_n(1≤pi≤n1 \le p_i \le n),表示排列 pp 的元素。

保证所有测试用例的 n2n^2 之和不超过 200022000^2。

输出格式

对于每组测试用例,输出 nn 个整数,表示在任意次操作后能够得到的字典序最小的排列。

输入输出样例

  • 输入#1

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

    输出#1

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

说明/提示

在第一组样例中,最优策略是对 i=1i=1,j=2j=2,k=3k=3 进行一次操作。注意不能选择 i=1i=1,j=3j=3,k=4k=4,因为这虽然满足第二个条件 p1=min⁡(p3,p4)+2p_1 = \min(p_3, p_4) + 2,但第一个条件 p1=max⁡(p3,p4)+1p_1 = \max(p_3, p_4) + 1 不满足。

在第二组样例中,可以按如下顺序操作:

  • 选择 i=1i=1,j=4j=4,k=5k=5,此时排列变为 [1,4,5,3,2][1, 4, 5, 3, 2]。
  • 选择 i=2i=2,j=4j=4,k=5k=5,此时排列变为 [1,2,5,4,3][1, 2, 5, 4, 3]。
  • 选择 i=3i=3,j=4j=4,k=5k=5,此时排列变为 [1,2,3,5,4][1, 2, 3, 5, 4]。

在第三组样例中,没有 i<j<ki < j < k 的三元组同时满足上面的条件,因此无法操作。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页