CF2071B.Perfecto

普及-

通过率:0%

AC君温馨提醒

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

题目描述

若一个长度为 nn 的排列 pp ∗^{\text{∗}} 满足:对于每个下标 ii(1≤i≤n1 \le i \le n),前 ii 个元素的和 p1+p2+…+pip_1 + p_2 + \ldots + p_i 不是完全平方数 †^{\text{†}},则称该排列为完美排列。

你需要构造完美排列。给定正整数 nn,找出一个长度为 nn 的完美排列,若不存在则输出 −1-1。

∗^{\text{∗}} 长度为 nn 的排列是指由 11 到 nn 的 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{†}} 完全平方数是指某个整数的平方,例如 9=329=3^2 是完全平方数,但 88 和 1414 不是。

输入格式

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

每个测试用例仅包含一行,包含一个整数 nn(1≤n≤5⋅1051 \le n \le 5 \cdot 10^5)。

保证所有测试用例的 nn 之和不超过 10610^6。

输出格式

对于每个测试用例:

  • 若无解,输出单个整数 −1-1;
  • 否则,输出 nn 个整数 p1,p2,…,pnp_1,p_2,\ldots,p_n —— 你找到的完美排列。

若存在多个解,输出任意一个即可。

输入输出样例

  • 输入#1

    3
    1
    4
    5

    输出#1

    -1
    2 4 1 3
    5 1 4 3 2

说明/提示

第一个测试用例中,当 n=1n = 1 时唯一可能的排列是 p=[1]p = [1],但它不满足完美条件:

  • p1=1=x2p_1 = 1 = x^2(当 x=1x = 1 时成立)。

第二个测试用例中,当 n=4n = 4 时一个可能的完美排列是 p=[2,4,1,3]p = [2, 4, 1, 3]:

  • p1=2≠x2p_1 = 2 \neq x^2;
  • p1+p2=2+4=6≠x2p_1 + p_2 = 2 + 4 = 6 \neq x^2;
  • p1+p2+p3=2+4+1=7≠x2p_1 + p_2 + p_3 = 2 + 4 + 1 = 7 \neq x^2;
  • p1+p2+p3+p4=2+4+1+3=10≠x2p_1 + p_2 + p_3 + p_4 = 2 + 4 + 1 + 3 = 10 \neq x^2。

第三个测试用例中,当 n=5n = 5 时一个可能的完美排列是 p=[5,1,4,3,2]p = [5, 1, 4, 3, 2]:

  • p1=5≠x2p_1 = 5 \neq x^2;
  • p1+p2=5+1=6≠x2p_1 + p_2 = 5 + 1 = 6 \neq x^2;
  • p1+p2+p3=5+1+4=10≠x2p_1 + p_2 + p_3 = 5 + 1 + 4 = 10 \neq x^2;
  • p1+p2+p3+p4=5+1+4+3=13≠x2p_1 + p_2 + p_3 + p_4 = 5 + 1 + 4 + 3 = 13 \neq x^2;
  • p1+p2+p3+p4+p5=5+1+4+3+2=15≠x2p_1 + p_2 + p_3 + p_4 + p_5 = 5 + 1 + 4 + 3 + 2 = 15 \neq x^2。

翻译由 DeepSeek R1 完成

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

首页