AT_tupc2024_l Square Connection
Description
正の整数 $ s,t $ が与えられます。あなたは以下の操作を $ 0 $ 回以上好きな回数行うことができます。
- $ 1 $ 以上 $ 4 \times 10^{18} $ 以下の整数 $ u $ であって $ s+u $ が平方数であるものを選び、 $ s $ を $ u $ で置き換える
$ s $ を $ t $ に一致させるために必要な操作の回数の最小値、およびその方法を一つ求めてください。
形式的には、以下を全て満たす長さ $ K $ の整数列 $ (u_1,u_2,\dots,u_K) $ を一つ求めてください。
- $ K $ は $ s $ を $ t $ に一致させるために必要な操作回数の最小値
- $ i=1,2,\dots,K $ に対して $ 1 \leq u_i \leq 4 \times 10^{18} $
- $ u_0=s $ とすると $ i=1,2,\dots,K $ に対して $ u_{i-1}+u_i $ は平方数
- $ u_K=t $
なお、本問の制約の下で $ 10^6 $ 回以下の操作で $ s $ を $ t $ に一致させる操作方法が必ず存在することが証明できます。
$ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ \text{case}_1 $ $ \text{case}_2 $ $ \vdots $ $ \text{case}_T $
ここで $ \text{case}_i $ は $ i $ 番目のテストケースを表し、各テストケースは以下の形式で与えられる。
> $ s $ $ t $
Output Format
$ T $ 行出力せよ。 $ i $ 行目には $ i $ 個目のテストケースに対する答えを以下の形式で出力せよ。
> $ K $ $ u_1 $ $ u_2 $ $ \dots $ $ u_K $
答えが複数ある場合はどれを出力しても正解とみなされる。
Explanation/Hint
### Sample Explanation 1
$ 1 $ つ目のテストケースについて、 $ 8+1=9,1+3=4 $ はともに平方数です。また、 $ 1 $ 回の操作で $ 8 $ を $ 3 $ にすることは出来ません。
### Constraints
- $ 1 \leq T \leq 3 \times 10^5 $
- $ 1 \leq s, t \leq 10^9 $
- $ s \ne t $
- $ 1 $ つの入力ファイルに対する必要な操作回数 $ (=K) $ の総和は $ 10^6 $ 以下
- 入力は全て整数