AT_xmascon22_g Generator SAT

Description

$ 1 $ 個の入力ファイルにつき $ T $ 個のテストケースが与えられる.各テストケースで整数 $ N, S $ が与えられるので,以下の問に答えよ. 整数 $ A_0, A_1, \ldots, A_{4N-1} $ を以下のように定める.数式および C++ コード片で示す: 1. 変数 $ s $ を $ s \gets S $ とする. 2. $ i = 0, 1, \ldots, 4 N - 1 $ に対しこの順で, $ A_i \gets \lfloor i/4 \rfloor + 1 $ とする. 3. $ i = 0, 1, \ldots, 4 N - 1 $ に対しこの順で, $ s \gets (s \times 2022) \bmod 998244353 $ としてから, $ s \not\equiv 0 \pmod{2} $ ならば $ A_i \gets -A_i $ とする. 4. $ i = 0, 1, \ldots, 4 N - 1 $ に対しこの順で, $ s \gets (s \times 2022) \bmod 998244353 $ としてから, $ A_{s \bmod (i+1)} $ と $ A_i $ の値を入れ替える. ```cpp #include std::vector Generate(int N, long long S) { long long s = S; std::vector A(4 * N); for (int i = 0; i < 4 * N; ++i) { A[i] = i / 4 + 1; } for (int i = 0; i < 4 * N; ++i) { s = (s * 2022) % 998244353; if (s % 2 != 0) { A[i] = -A[i]; } } for (int i = 0; i < 4 * N; ++i) { s = (s * 2022) % 998244353; int j = s % (i + 1); int t = A[j]; A[j] = A[i]; A[i] = t; } return A; } ``` 各 $ j = 1, 2, \ldots, N $ に対して $ +j $ と $ -j $ のいずれかちょうど一方を「良い整数」と決める方法 $ 2^N $ 通りのうち,以下の $ N $ 個の条件をすべて満たすものが存在するかどうか判定し,存在する場合はそのような方法を $ 1 $ 通り求めよ: - $ A_0, A_1, A_2, A_3 $ のうち少なくとも $ 1 $ 個は良い整数である. - $ A_4, A_5, A_6, A_7 $ のうち少なくとも $ 1 $ 個は良い整数である. - $ \cdots $ - $ A_{4N-4}, A_{4N-3}, A_{4N-2}, A_{4N-1} $ のうち少なくとも $ 1 $ 個は良い整数である.

Input Format

標準入力の $ 1 $ 行目にテストケースの個数 $ T $ が与えられる.その後, $ T $ 個のテストケースがそれぞれ以下の形式で与えられる. > $ N $ $ S $

Output Format

各テストケースについて,以下のように $ 1 $ 行で出力せよ. 条件を満たすことができる場合,良い整数の決め方を $ 1 $ 通り選び,以下のような長さ $ N $ の文字列を出力せよ:各 $ j = 1, 2, \ldots, N $ に対し, - $ +j $ が良い整数の場合, $ j $ 文字目は `+` である. - $ -j $ が良い整数の場合, $ j $ 文字目は `-` である. 条件を満たすことができない場合,`0` と出力せよ.

Explanation/Hint

### Sample Explanation 1 $ 1 $ 個目のテストケースでは, - $ (A_0, A_1, A_2, A_3) = (-3, -3, -2, +3) $ - $ (A_4, A_5, A_6, A_7) = (+2, +1, -1, +3) $ - $ (A_8, A_9, A_{10}, A_{11}) = (+2, +1, -2, +1) $ となる.例えば, $ +1, +2, -3 $ を良い整数と決めれば条件を満たす. $ 2 $ 個目のテストケースでは, - $ (A_0, A_1, A_2, A_3) = (+3, -2, +2, -3) $ - $ (A_4, A_5, A_6, A_7) = (+4, +1, +3, -1) $ - $ (A_8, A_9, A_{10}, A_{11}) = (+4, +2, +1, +4) $ - $ (A_{12}, A_{13}, A_{14}, A_{15}) = (-1, -2, -3, -4) $ となる.例えば, $ +1, -2, -3, +4 $ を良い整数と決めれば条件を満たす. ### Constraints - $ 1 \le T \le 10 $ . - $ 1 \le N \le 10^5 $ . - $ 0 \le S < 998244353 $ .