我是靠谱客的博主 霸气秀发,这篇文章主要介绍codeforce 11 A,现在分享给大家,希望可以做个参考。

http://vjudge.net/contest/view.action?cid=18290#problem/A

Description

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.

Sample Input

Input
复制代码
1
2
4 2 1 3 3 2
Output
复制代码
1
3
一不小心就超时。。。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h> #include <string.h> #include <iostream> using namespace std; int a[10005]; int main() { int n,d; while(~scanf("%d%d",&n,&d)) { for(int i=0; i<n; i++) scanf("%d",&a[i]); int sum=0; for(int i=1; i<n; i++) { if(a[i]<=a[i-1]) { int x=a[i-1]-a[i]; a[i]+=(x/d)*d; sum+=x/d; if(a[i]<=a[i-1]) { a[i]+=d; sum++; } if(a[i]<=a[i-1]) { a[i]+=d; sum++; } } } printf("%dn",sum); } return 0; }


最后

以上就是霸气秀发最近收集整理的关于codeforce 11 A的全部内容,更多相关codeforce内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部