AT_agc063_f [AGC063F] Simultaneous Floor
Description
[problemUrl]: https://atcoder.jp/contests/agc063/tasks/agc063_f
非負整数の組 $ a\ =\ (a_1,a_2) $, $ b\ =\ (b_1,b_2) $ が与えられます. あなたは組 $ a $ に対して次の操作を何度でも行うことができます($ 0 $ 回でもよい):
- 操作:**正実数** $ x $ をひとつ選ぶ.$ a\ =\ (a_1,a_2) $ を $ (\lfloor\ a_1x\rfloor,\ \lfloor\ a_2x\rfloor) $ に置き換える.
あなたの目的は,組 $ a $ と組 $ b $ を等しくすることです.目的を達成することが可能か否かを判定してください.目的を達成することが可能な場合には,そのために必要な操作回数の最小値を求めてください.
$ T $ 個のテストケースが与えられるので,それぞれについて答えを求めてください.
Input Format
入力は以下の形式で標準入力から与えられます.
> $ T $ $ \text{case}_1 $ $ \vdots $ $ \text{case}_T $
各テストケースは以下の形式で与えられます.
> $ a_1 $ $ a_2 $ $ b_1 $ $ b_2 $
Output Format
$ T $ 行出力してください.$ i $ 行目には $ i $ 番目のテストケースについて,$ a $ を $ b $ に等しくすることが不可能ならば `-1`,可能ならばそのために必要な操作回数の最小値を出力してください.
Explanation/Hint
### 制約
- $ 1\leq\ T\leq\ 10^5 $
- $ 0\leq\ a_1,\ a_2,\ b_1,\ b_2\ \leq\ 10^9 $
### Sample Explanation 1
$ 1 $ 番目のテストケースについて,以下が最適な手順の一例です: - はじめ,$ a\ =\ (2,3) $ である. - $ x\ =\ 0.6 $ として操作を行う.$ a $ は $ (\lfloor\ 1.2\ \rfloor,\ \lfloor\ 1.8\rfloor)\ =\ (1,1) $ に置き換えられる. $ 3 $ 番目のテストケースについて,以下が最適な手順の一例です: - はじめ,$ a\ =\ (3,2) $ である. - $ x\ =\ 1.5 $ として操作を行う.$ a $ は $ (4,3) $ に置き換えられる. - $ x\ =\ 1.7 $ として操作を行う.$ a $ は $ (6,5) $ に置き換えられる. - $ x\ =\ 1.6 $ として操作を行う.$ a $ は $ (9,8) $ に置き換えられる.