CF1608B Build the Permutation

题目描述

给定三个整数 $n, a, b$。请判断是否存在一个 $1$ 到 $n$ 的排列 $p_1, p_2, \ldots, p_n$,使得: - 恰好有 $a$ 个整数 $i$ 满足 $2 \le i \le n-1$ 且 $p_{i-1} < p_i > p_{i+1}$(即恰好有 $a$ 个局部极大值)。 - 恰好有 $b$ 个整数 $i$ 满足 $2 \le i \le n-1$ 且 $p_{i-1} > p_i < p_{i+1}$(即恰好有 $b$ 个局部极小值)。 如果存在这样的排列,输出任意一个满足条件的排列。

输入格式

第一行输入一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。接下来每个测试用例占一行,每行包含三个整数 $n, a, b$($2 \leq n \leq 10^5$,$0 \leq a, b \leq n$)。 所有测试用例中 $n$ 的总和不超过 $10^5$。

输出格式

对于每个测试用例,如果不存在满足条件的排列,输出 $-1$。 否则,输出任意一个满足条件的排列。如果有多个答案,可以输出任意一个。

说明/提示

在第一个测试用例中,一个满足条件的排列为 $[1, 3, 2, 4]$。其中 $p_1 < p_2 > p_3$,$2$ 是唯一满足条件的下标;$p_2 > p_3 < p_4$,$3$ 是唯一满足条件的下标。 可以证明第三个测试用例不存在满足条件的排列。 由 ChatGPT 4.1 翻译