CF2147B.Multiple Construction

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Multiple Construction

题目描述

给定一个整数 nn。你的任务是构造一个长度为 2n2 \cdot n 的数组,要求满足以下条件:

  • 11nn 每个整数在数组中恰好出现两次。
  • 对于每个整数 xx1xn1 \leq x \leq n),xx 两次出现的位置之间的距离是 xx 的倍数。也就是说,若 pxp_xqxq_x 分别是 xx 两次出现的位置下标,则 qxpx| q_x - p_x | 必须能被 xx 整除。

可以证明,总是存在一种满足条件的方案。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 tt1t1041 \leq t \leq 10^4),表示测试数据组数。

接下来的 tt 行,每行包含一个整数 nn1n21051 \leq n \leq 2 \cdot 10^{5})。

保证所有测试数据中 nn 的和不超过 21052 \cdot 10^{5}

输出格式

对于每组测试数据,输出一行 2n2 \cdot n 个整数,表示满足条件的数组。

如存在多种合法方案,输出任意一种均可。

说明/提示

可视化工具链接

在第一个测试样例中:

  • 数字 11 出现在第 11 和第 33 个位置:两次出现的距离为 22,是 11 的倍数。
  • 数字 22 出现在第 22 和第 44 个位置:两次出现的距离为 22,是 22 的倍数。

在第二个测试样例中:

  • 数字 11 出现在第 11 和第 33 个位置:距离为 22,是 11 的倍数。
  • 数字 22 出现在第 44 和第 66 个位置:距离为 22,是 22 的倍数。
  • 数字 33 出现在第 22 和第 55 个位置:距离为 33,是 33 的倍数。

在第三个测试样例中,数字 11 两次出现位置是在第 11 和第 22,距离为 11,是 11 的倍数。

由 ChatGPT 5 翻译

样例

3
2
3
1
1 2 1 2
1 3 1 2 3 2
1 1

在线编程 IDE

建议全屏模式获得最佳体验