atcoder#ARC150B. [ARC150B] Make Divisible

[ARC150B] Make Divisible

配点 : 500500

問題文

正整数 A, BA,\ B が与えられます。

非負整数 X, YX,\ Y であって、 B+YB+YA+XA+X の倍数となるようなものに対する X+YX+Y の最小値を求めてください。

TT 個のテストケースが与えられるので、それぞれについて求めてください。

制約

  • 1T1001 \leq T \leq 100
  • 1A, B1091 \leq A,\ B \leq 10^9
  • 入力される値はすべて整数

入力

入力は以下の形式で標準入力から与えられます。

TT

case1\mathrm{case}_{1}

case2\mathrm{case}_{2}

\vdots

caseT\mathrm{case}_{T}

各ケースは以下の形式で与えられます。

AA BB

出力

TT 行出力してください。 ii 行目には ii 番目のテストケースに対する答えを出力してください。

5
11 23
8 16
4394 993298361
95392025 569922442
8399283 10293
2
0
65
2429708
8388990

11 個目のテストケースについて、X=1, Y=1X=1,\ Y=1 とすると B+Y=24B+Y=24A+X=12A+X=12 の倍数になります。このとき X+Y=2X+Y=2 であり、X+YX+Y はこれより小さくすることはできないので答えは 22 です。

22 個目のテストケースについて、X=0, Y=0X=0,\ Y=0 とすると B+Y=16B+Y=16A+X=8A+X=8 の倍数になります。