#ATabc255c. [ABC255C] ±1 Operation 1

[ABC255C] ±1 Operation 1

题目描述

给定一个整数 XX。对 XX 进行如下操作称为“一次操作”:

  • 从以下两种操作中任选一种并执行:
    • XX11
    • XX11

对于首项为 AA,公差为 DD,项数为 NN 的等差数列 SS,我们称 SS 中的数为“好数”。 你可以对 XX 进行 00 次或多次操作,使其变为“好数”。请你求出所需操作的最小次数。

输入格式

输入为一行,包含四个整数:

X A D NX\ A\ D\ N

输出格式

输出一个整数,表示所需的最小操作次数。

样例 1

输入

6 2 3 3

输出

1

样例 2

输入

0 0 0 1

输出

0

样例 3

输入

998244353 -10 -20 30

输出

998244363

样例 4

输入

-555555555555555555 -1000000000000000000 1000000 1000000000000

输出

444445

说明/提示

限制条件

  • 所有输入均为整数。
  • 1018X,A1018-10^{18} \leq X, A \leq 10^{18}
  • 106D106-10^6 \leq D \leq 10^6
  • 1N10121 \leq N \leq 10^{12}

样例解释 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 操作即可。无法通过 00 次操作使 XX 成为“好数”。

样例解释 2

D=0D=0 的情况也是可能的。此外,也可能不需要进行任何操作。

由 ChatGPT 4.1 翻译