题解 CF990A 【Commentary Boxes】

题目

1 \(\le n,m \le 10^{12}\) , 1 \(\le a,b \le 100\)

由此可得, \(a , b\) 皆为正整数。
因此,加减运算同时存在的方案所需的代价一定不是最小的。

思路

  • \(n\) 每次加一达到比 \(n\) 大的且能被 \(m\) 整除的最小整数
  • 或者 \(n\) 每次减一达到比 \(n\) 小的且能被 \(m\) 整除的最大整数

花费分别为
\((m-n\) % \(m)\) * \(a\)\((n\) % \(m)\) * \(b\)

Python 自带高精度,不需要考虑数据范围。

Code

import math
s = input().split()
for i in range(4):
    s[i] = int(s[i])
print(min((s[1]-s[0]%s[1])*s[2],(s[0]%s[1])*s[3]))
posted @ 2021-05-01 15:56  我和鱼过不去  阅读(48)  评论(0)    收藏  举报