Олимпиадный тренинг

Задача . C. MEX-цикл


У дракона Эвирира много друзей. У него есть целых 3 друга! Это на одного больше, чем у среднестатистического дракона.

Вам даны целые числа \(n\), \(x\), и \(y\). В кругу сидят \(n\) драконов, пронумерованных целыми числами \(1, 2, \ldots, 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{∗}}\)Наименьшее исключенное (MEX) набора чисел \(c_1, c_2, \ldots, c_m\) определяется как наименьшее неотрицательное целое число \(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\).

Примеры
Входные данныеВыходные данные
1 7
5 1 3
4 2 4
6 3 5
7 3 6
3 2 3
5 1 5
6 2 5
0 2 1 0 1
1 2 1 0
1 2 0 1 2 0
0 1 2 0 1 0 1
2 0 1
1 0 2 1 0
0 1 2 0 2 1

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя