CF1733B Rule of League

题目描述

有一场羽毛球锦标赛,共有 $n$ 名选手参加。选手编号从 $1$ 到 $n$。 比赛规则如下:选手 $1$ 和选手 $2$ 进行一场比赛,胜者与选手 $3$ 再进行一场比赛,然后胜者与选手 $4$ 进行比赛,依此类推。总共会进行 $n-1$ 场比赛,最后一场比赛的胜者成为冠军。比赛中不会出现平局。 你现在只知道如下信息: - 每位选手在锦标赛中要么赢了 $x$ 场比赛,要么赢了 $y$ 场比赛。 给定 $n$、$x$ 和 $y$,判断是否存在一种比赛结果满足上述信息。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^5$),表示测试用例的数量。 每个测试用例包含一行,包含三个整数 $n$、$x$、$y$($2 \le n \le 10^5$,$0 \le x, y < n$)。 保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一行答案。如果不存在满足条件的比赛结果,输出 $-1$。否则,输出 $n-1$ 个用空格分隔的整数,第 $i$ 个整数表示第 $i$ 场比赛的获胜者的编号。 如果有多种合法方案,输出任意一种均可。

说明/提示

在第一个测试用例中,选手 $1$ 和选手 $4$ 各赢了 $x$ 场,选手 $2$ 和选手 $3$ 各赢了 $y$ 场。 在第二、第三和第五个测试用例中,不存在合法的比赛结果。 由 ChatGPT 4.1 翻译