CF2049C MEX Cycle
题目描述
Evirir 这只龙有很多朋友。它有 **3** 个朋友!这比普通龙多一个。
你得到了三个整数 $ n $ , $ x $ 和 $ y $ 。有 $ n $ 只龙围成一个圈坐着。龙从 $ 1 $ 到 $ n $ 编号。对于每个 $ i $ ( $ 1 \le i \le n $ ),龙 $ i $ 与龙 $ i - 1 $ 和 $ i + 1 $ 是朋友,其中龙 $ 0 $ 被定义为龙 $ n $ ,龙 $ n + 1 $ 被定义为龙 $ 1 $ 。此外,龙 $ x $ 和龙 $ y $ 也是朋友(如果它们已经是朋友了,这不会改变任何东西)。请注意,所有的友谊都是相互的。
你需要输出 $ n $ 个非负整数 $ a_1, a_2, \ldots, a_n $ ,使得对于每只龙 $ i $ ( $ 1 \le i \le n $ ),以下条件成立:
- 设 $ f_1, f_2, \ldots, f_k $ 是龙 $ i $ 的朋友。那么 $ a_i = \operatorname{mex}(a_{f_1}, a_{f_2}, \ldots, a_{f_k}) $ 。 $ ^{\text{∗}} $
$ ^{\text{∗}} $ 集合 $ c_1, c_2, \ldots, c_m $ 的最小排除值 (MEX) 被定义为最小的非负整数 $ t $ ,它不在集合 $ c $ 中出现。
输入格式
每个测试用例包含多个测试用例。第一行包含测试用例的数量 $ t $ ( $ 1 \le t \le 10^4 $ )。测试用例的描述如下。
每个测试用例的第一行也是唯一的一行,包含三个整数 $ n $ , $ x $ , $ y $ ( $ 3 \le n \le 2 \cdot 10^5 $ , $ 1 \le x < y \le n $ )。
保证所有测试用例的 $ n $ 之和不超过 $ 2 \cdot 10^5 $ 。
输出格式
对于每个测试用例,输出一行包含 $ n $ 个空格分隔的非负整数 $ a_1, a_2, \ldots, a_n $ ( $ 0 \le a_i \le 10^9 $ ),满足题目中的条件。如果有多个解,输出任意一个。可以证明,在问题约束下,存在满足 $ 0 \le a_i \le 10^9 $ 的解。
说明/提示
对于第一个测试用例:
- $ i = 1 $ : 龙 $ 1 $ 的朋友是龙 $ 2, 3, 5 $ $ \operatorname{mex}(a_2, a_3, a_5) = \operatorname{mex}(2, 1, 1) = 0 = a_1 $ ,所以龙 $ 1 $ 的条件满足
- $ i = 2 $ : 龙 $ 2 $ 的朋友是龙 $ 1, 3 $ $ \operatorname{mex}(a_1, a_3) = \operatorname{mex}(0, 1) = 2 = a_2 $
- $ i = 3 $ : 龙 $ 3 $ 的朋友是龙 $ 1, 2, 4 $ $ \operatorname{mex}(a_1, a_2, a_4) = \operatorname{mex}(0, 2, 0) = 1 = a_3 $
- $ i = 4 $ : 龙 $ 4 $ 的朋友是龙 $ 3, 5 $ $ \operatorname{mex}(a_3, a_5) = \operatorname{mex}(1, 1) = 0 = a_4 $
- $ i = 5 $ : 龙 $ 5 $ 的朋友是龙 $ 1, 4 $ $ \operatorname{mex}(a_1, a_4) = \operatorname{mex}(0, 0) = 1 = a_5 $