CF793A Oleg and shares
题目描述
银行客户 Oleg 每天都会查看股票价格。他关注的有 $n$ 种股票的价格。今天他观察到,每秒钟恰好有一个股票价格下降 $k$ 卢布(注意,每秒只能有一个价格变化,每次变化可能是不同的股票)。股票价格可以变成负数。Oleg 觉得这个过程很有趣,于是他问金融分析师 Igor,最少需要多少秒,所有 $n$ 个价格才能全部相等,或者这种情况是否根本不可能发生?Igor 现在很忙,于是请你帮忙回答这个问题。
输入格式
第一行包含两个整数 $n$ 和 $k$($1 \leq n \leq 10^{5},\ 1 \leq k \leq 10^{9}$)——表示股票价格的个数以及每次价格下降的金额。
第二行包含 $n$ 个整数 $a_1, a_2, ..., a_n$($1 \leq a_i \leq 10^{9}$)——表示每支股票的初始价格。
输出格式
输出一行,表示让所有股票价格变得相等所需的最少秒数,如果无法实现输出“-1”。
说明/提示
以第一个样例为例。
假设第三个价格在第一秒下降,变为 $12$ 卢布,然后第一个价格下降,变为 $9$ 卢布,第三个价格在第三秒再次下降,变为 $9$ 卢布。在这种情况下,所有价格在 $3$ 秒内变为 $9$ 卢布。
也可以有其他方案,但这个方案所需的时间最少。因此答案是 $3$。
在第二个样例中可以发现,第一和第二个价格的奇偶性不同,并且在整个操作过程中不会改变,因此价格永远无法相等。
第三个样例中,可以这样操作:首先第二个价格下降一次,然后第三个价格下降一次,再然后第四个价格下降一次。这样的操作一共进行 $999999999$ 次。由于每次只能有一个价格下降,整个过程总共需要 $999999999 \times 3 = 2999999997$ 秒。可以证明,这是所需的最小时间。
由 ChatGPT 5 翻译