我是靠谱客的博主 秀丽期待,最近开发中收集的这篇文章主要介绍CodeForces - 11A ---递增数列,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include<cstdio>
#include<cstring>
#include<string>
#include<string.h>
#include<cmath>
#include<algorithm>
#include<iostream>
#define ll long long
using namespace std;

int a[2010];
int n, d;
int main(){
    scanf("%d%d", &n, &d);
    for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
    int ans = 0;
    for(int i = 1; i <= n; i++){
        if(a[i] <= a[i-1]){
            int temp = (a[i-1] - a[i] + d) / d;
            a[i] = a[i] + temp*d;
            ans += temp;
        }
    }
    cout << ans << endl;
    return 0;
}

A sequence a0, a1, ..., at - 1 is called increasing if ai - 1 < ai for each i: 0 < i < t.

You are given a sequence b0, b1, ..., bn - 1 and a positive integer d. In each move you may choose one element of the given sequence and add d to it. What is the least number of moves required to make the given sequence increasing?

Input

The first line of the input contains two integer numbers n and d (2 ≤ n ≤ 2000, 1 ≤ d ≤ 106). The second line contains space separated sequence b0, b1, ..., bn - 1 (1 ≤ bi ≤ 106).

Output

Output the minimal number of moves needed to make the sequence increasing.

Example
Input
4 2
1 3 3 2
Output
3

最后

以上就是秀丽期待为你收集整理的CodeForces - 11A ---递增数列的全部内容,希望文章能够帮你解决CodeForces - 11A ---递增数列所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部