100 atcoder#ABC161C. [ABC161C] Replacing Integer

[ABC161C] Replacing Integer

题目描述

青木君は任意の整数 x x に対し、以下の操作を行うことができます。

操作: x x x x K K の差の絶対値で置き換える。

整数 N N の初期値が与えられます。この整数に上記の操作を 0 0 回以上好きな回数行った時にとりうる N N の最小値を求めてください。

输入格式

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

N N K K

输出格式

操作を 0 0 回以上好きな回数行った時にとりうる N N の最小値を出力せよ。

题目大意

给定正整数 n,kn,k,你可以进行任意多次操作,每次把 nn 变为 nkn-k 的绝对值,问你能得到的最小的 nn

1n,k10181\le n,k\le 10^{18}

7 4
1
2 6
2
1000000000000000000 1
0

提示

制約

  • 0 < = N < = 1018 0\ <\ =\ N\ <\ =\ 10^{18}
  • 1 < = K < = 1018 1\ <\ =\ K\ <\ =\ 10^{18}
  • 入力は全て整数

Sample Explanation 1

最初、 N=7 N=7 です。 1 1 回操作を行うと、N N 74 = 3 |7-4|\ =\ 3 となります。 2 2 回操作を行うと、N N 34=1 |3-4|=1 となり、これが最小です。

Sample Explanation 2

1 1 回も操作を行わなかった場合の N=2 N=2 が最小です。