AT_agc051_f [AGC051F] rng_58's Last Problem

Description

[problemUrl]: https://atcoder.jp/contests/agc051/tasks/agc051_f > 砂時計が $ 2 $ つあり、一方は $ 1 $ 秒計、もう一方は $ \sqrt{2} $ 秒計です。 これで $ x\ +\ y\ \sqrt{2} $ 秒を測ることは可能でしょうか。 厳密に述べましょう。 $ 2 $ つの砂時計 $ A,\ B $ があり、各砂時計には砂が入る $ 2 $ つの「球」があります。 各砂時計は、縦か横に置くことができます。 縦に置くと、上の球が砂を含む限り、砂が下の球に $ 1 $ 秒あたり $ 1 $ グラムの速さで流れ続けます。 横に置くと、砂は流れません。 縦に置く方法はどちらの球が上になるかで $ 2 $ 通りあるため、各砂時計は合計で $ 3 $ 通りの状態のいずれかにあります。 砂時計 $ A $ に含まれる砂の量は $ 1 $ グラム、砂時計 $ B $ に含まれる砂の量は $ \sqrt{2} $ グラムです。したがって、砂時計 $ A $ が縦に置かれ、砂が全て上の球にあるとき、砂が下の球に落ち切るまでに $ 1 $ 秒を要します。 同様に、砂時計 $ B $ はこれに $ \sqrt{2} $ 秒を要します。 はじめ、砂時計 $ A,\ B $ はともに縦に置かれており、砂は全て下の球にあります。 すぬけ君が叫ぶまでは、何にも触れてはいけません。 すぬけ君の叫びからちょうど $ t $ 秒後に *出来事* (後述) が起こったとき、$ t $ 秒を測れたといいます。 *出来事* が起こったとは、以下のいずれかが起こったことをいいます。 - すぬけ君が叫んだ。 - 縦に置かれた砂時計の砂がちょうど落ち切った。 *出来事* が起こったとき、次の操作を (何度でも) 無視できる時間で行えます。 - 砂時計を $ 1 $ つ選び、それを別の状態にする。 例えば、以下のようにして $ -1\ +\ 2\ \sqrt{2} $ 秒を測れます。 - 時刻 $ 0 $ に、すぬけ君が叫ぶ。$ A,\ B $ をともにひっくり返す。 - 時刻 $ 1 $ に、$ A $ の砂が落ち切る、という出来事が起こる。$ A $ を再びひっくり返す ($ B $ はそのまま)。 - 時刻 $ \sqrt{2} $ に、$ B $ の砂が落ち切る、という出来事が起こる。$ A $ を再びひっくり返し、$ B $ は横にしておく。 - 時刻 $ -1\ +\ 2\ \sqrt{2} $ に、$ A $ の砂が落ち切る、という出来事が起こる。 $ x_i\ +\ y_i\ \sqrt{2} $ という形の数が $ Q $ 個与えられるので、それぞれについて上記の問題を解いてください。

Input Format

入力は標準入力から以下の形式で与えられる。 > $ Q $ $ x_1 $ $ y_1 $ $ : $ $ x_Q $ $ y_Q $

Output Format

$ Q $ 行出力せよ。 出力の $ i $ 行目は、$ x_i\ +\ y_i\ \sqrt{2} $ 秒を測ることが可能なら `Yes`、不可能なら `No` とすること。

Explanation/Hint

### 制約 - $ 1\ \leq\ Q\ \leq\ 10^5 $ - $ -10^9\ \leq\ x_i,\ y_i\ \leq\ 10^9 $ - $ x_i\ +\ y_i\ \sqrt{2}\ >\ 0 $ - 入力中の全ての値は整数である。