Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Будем решать задачу жадно.
- Первое число менять не нужно, далее пойдем по последовательности b слева направо, для каждого числа посчитаем, сколько шагов нам нужно, чтобы текущее число (b[i]) сделать больше, чем предыдущее (b[i - 1]). Если b[i] уже > b[i - 1], ничего добавлять не нужно, p = 0; иначе нам нужно "добить" разницу b[i - 1] - b[i] минимальным количеством d. На это уйдет p = ceil((b[i - 1] - b[i]) / d) ходов, где ceil(x) -- округление вверх. К ответу добавляем p, и нужно не забыть увеличить наше текущее число на p ходов -- b[i] += p * d.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement