CFCF2205A.Simons and Making It Beautiful

入门

通过率:0%

AC君温馨提醒

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

题目描述

那些紧紧跟随我的麻烦——要么付出代价,要么让路。

—— SHUN, TAKE IT AWAY

对于一个长度为 mm 的排列 rr,如果某个下标 ii1im1 \le i \le m)满足 i=max({r1,r2,,ri})i = \max(\{r_1, r_2, \ldots, r_i\}),我们称下标 ii 是丑陋下标。

Simons 有一个长度为 nn 的排列 pp,他最多可以对 pp 执行以下操作一次:

  • 选择两个不同的下标 iijj1ijn1 \le i \ne j \le n),交换 pip_ipjp_j

请你找出一个可以通过至多执行一次上述操作从 pp 得到的排列 qq,使得 qq 中丑陋下标的数量最少。

一个长度为 nn 的排列是指由 11nnnn 个互不相同的整数按任意顺序组成的数组。例如,[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)。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 tt1t1001 \le t \le 100),表示测试用例的数量。

对于每组测试用例:

第一行包含一个整数 nn1n5001 \le n \le 500),表示排列 pp 的长度。

第二行包含 nn 个整数 p1,p2,,pnp_1,p_2,\ldots,p_n1pin1 \le p_i \le n,所有 pip_i 互不相同),表示排列 pp 的元素。

输出格式

对于每组测试用例,输出 nn 个整数 q1,q2,,qnq_1, q_2, \ldots, q_n,表示你找到的满足要求的排列。

如果存在多种可能的排列,你可以输出任意一种。

输入输出样例

  • 输入#1

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

    输出#1

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

说明/提示

在第一个测试用例中,Simons 只能得到两种可能的排列:[1,2][1,2][2,1][2,1]

  • 对于排列 [1,2][1,2],有 1=max({1})1 = \max(\{1\})2=max({1,2})2 = \max(\{1,2\}),所以有两个丑陋下标。
  • 对于排列 [2,1][2,1],有 1max({2})1 \ne \max(\{2\})2=max({2,1})2 = \max(\{2,1\}),所以只有一个丑陋下标。

因此,排列 [2,1][2,1] 丑陋下标数量最少。

在第二个测试用例中,Simons 可以通过交换第 22 个和第 44 个元素得到排列 [2,4,1,3][2,4,1,3],此时仅有一个丑陋下标:

  • 1max({2})1\ne \max(\{2\}),下标 11 不是丑陋下标;
  • 2max({2,4})2\ne \max(\{2,4\}),下标 22 不是丑陋下标;
  • 3max({2,4,1})3\ne \max(\{2,4,1\}),下标 33 不是丑陋下标;
  • 4=max({2,4,1,3})4=\max(\{2,4,1,3\}),下标 44 是丑陋下标。

在第三个测试用例中,注意 Simons 没有进行任何操作。

首页