Tinkoff Challenge - Elimination Round |
---|
Закончено |
Простой клиент банка Олег каждый день проверяет цены на акции, которыми сейчас владеет. Его интересуют цены на n акций. Открыв в очередной раз сайт с котировками, Олег заметил, что каждую секунду цена ровно одной акции Олега опускается на k рублей (заметьте, что в разные секунды может меняться цена разных акций, но в каждую секунду меняется цена только одной акции). Цена акций может стать отрицательной. Олега очень заинтересовал этот процесс, и он решил спросить у аналитика Игоря, через какое минимальное количество секунд цена всех его n акций может стать одинаковой, либо же удостовериться, что такого никогда не случится. Однако Игорь оказался слишком занят делами в своем офисе, и попросил вас помочь Олегу. Справитесь ли вы с этим поручением?
На первой строке через пробел даны числа n и k (1 ≤ n ≤ 105, 1 ≤ k ≤ 109) — количество акций Олега и количество рублей, на которые каждую секунду опускается цена произвольной акции Олега.
На следующей строке через пробел даны n целых чисел a1, a2, ..., an (1 ≤ ai ≤ 109) — цены акций Олега на момент, когда он открыл сайт с котировками.
На первой и единственной строке выведите одно целое число — через какое минимальное количество секунд цены всех акций могут стать одинаковыми, либо выведите «-1», если такого произойти не может.
3 3
12 9 15
3
2 2
10 9
-1
4 1
1 1000000000 1000000000 1000000000
2999999997
Рассмотрим первый пример.
В первую секунду цена третьей акции становится 12 рублей, далее во вторую секунду цена первой акции становится 9 рублей, и в следующую секунду цена третьей акции опускается до 9 рублей. Таким образом, цены всех акций стали равны 9 рублям за 3 секунды.
Возможны и другие варианты развития событий, однако вышеприведенный является минимальным по количеству секунд, которое потребовалось, чтобы сделать цены всех акций равными. Таким образом, ответ равен 3.
Во втором примере можно заметить, что четность цен обоих акций никогда не будет меняться, и изначально они разной четности, а значит, цены никогда не смогут стать равными.
В третьем примере минимальным по количеству секунд является такой вариант развития событий: сначала опускается цена второй акции, затем трететьей, затем четвертой, и так 999999999 раз. Так как за секунду опускается цена только одной акции, то на весь процесс потребуется 999999999 * 3 = 2999999997 секунд.
Название |
---|