#P16394. [ECUSTPC 2026 Spring] 回响形态

    ID: 18408 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>数学Special Judge构造2026高校校赛

[ECUSTPC 2026 Spring] 回响形态

背景

:::epigraph 你构造序列成功了?

你构造序列成功 :::

题目描述

构造王国还在追击小 T……

定义一个长度为 nn 的序列的前缀 max⁡\max 序列 xx 为 xi=max⁡{aj:1≤j≤i}x_i = \max\{a_j : 1 \le j \le i\},前缀 min⁡\min 序列 yy 为 yi=min⁡{aj:1≤j≤i}y_i = \min\{a_j : 1 \le j \le i\}。

对于给定的 nn 和 kk,请构造两个满足如下条件的长度为 nn 的序列 aa 和 bb,如果不存在满足下述条件的两个序列,请报告无解:

  • aa 和 bb 为 11 到 nn 的排列。
  • aa 和 bb 有至少一项不同,也即存在 ii 满足 ai≠bia_i \ne b_i。
  • 对于 aa 和 bb 的中的任意一个序列,记其前缀 max⁡\max 序列为 xx,前缀 min⁡\min 序列为 yy,需要满足:
∑i=1n(xi−yi)=k.\sum_{i=1}^{n}(x_i - y_i) = k.

输入格式

第一行输入一个整数 T (1≤T≤105)T \ (1 \le T \le 10^5),表示测试数据的数量。

每组测试数据一行输入两个整数 nn 和 k (2≤n≤105,0≤k≤1010)k \ (2 \le n \le 10^5, 0 \le k \le 10^{10}),表示序列的长度和前缀 max⁡\max 和 min⁡\min 的差。

保证所有测试数据的 ∑n≤3×105\sum n \le 3 \times 10^5。

输出格式

对于每组测试数据,若存在满足条件的两个序列则输出两行。

第一行输出 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n 表示你构造的第一个序列 aa。

随后一行输出 nn 个整数 b1,b2,…,bnb_1, b_2, \dots, b_n 表示你构造的第二个序列 bb。

若不存在满足条件的两个序列,则输出一行一个整数 −1-1。

如果有多个合法的答案则你可以输出其中任意一个。

3
2 1
2 0
5 12
1 2
2 1
-1
1 3 4 2 5
1 2 4 5 3

提示

样例 1 解释

对于第 3 组测试数据,我们验证第二个序列也就是 bb 序列是否符合条件:

  • {1,2,4,5,3}\{1, 2, 4, 5, 3\} 是一个 11 到 55 的排列,因为其中各个整数都出现且仅出现了一次。
  • 第二项 a2=3a_2 = 3, b2=2b_2 = 2, a2≠b2a_2 \ne b_2。
  • 其前缀 max⁡\max 序列为 x={1,2,4,5,5}x = \{1, 2, 4, 5, 5\},前缀 min⁡\min 序列为 y={1,1,1,1,1}y = \{1, 1, 1, 1, 1\},即得
$$\sum_{i=1}^{n}(x_i - y_i) = (1 - 1) + (2 - 1) + (4 - 1) + (5 - 1) + (5 - 1) = 0 + 1 + 3 + 4 + 4 = 12 = k.$$

提示

一个 11 到 nn 的排列是一个长度为 nn 且其中每个 11 到 nn 的整数都出现且仅出现一次的序列。