atcoder#ABC255C. [ABC255C] ±1 Operation 1

[ABC255C] ±1 Operation 1

配点 : 300300

問題文

整数 XX が与えられます。この XX に以下を施すことを「操作」と呼びます。

  • 以下の 22 つのうちどちらかを選択し、実行する。- XX11 を加算する。
    • XX から 11 を減算する。

初項 AA 、公差 DD 、項数 NN の等差数列 SS に含まれる数を「良い数」と呼びます。 「操作」を 00 回以上何度でも使って XX を「良い数」にする時、必要な「操作」の最小回数を求めてください。

制約

  • 入力は全て整数
  • 1018X,A1018-10^{18} \le X,A \le 10^{18}
  • 106D106-10^6 \le D \le 10^6
  • 1N10121 \le N \le 10^{12}

入力

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

XX AA DD NN

出力

答えを整数として出力せよ。

6 2 3 3
1

A=2,D=3,N=3A=2,D=3,N=3 であるため、 S=(2,5,8)S=(2,5,8) です。 X=6X=6 を「良い数」にするためには、 XX から 11 を減算することを 11 度行えば良いです。 00 回の操作で XX を「良い数」にすることはできません。

0 0 0 1
0

D=0D=0 である場合もあります。また、操作を 11 回も必要としない場合もあります。

998244353 -10 -20 30
998244363
-555555555555555555 -1000000000000000000 1000000 1000000000000
444445