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
1
24 2 1 3 3 2
13
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内容请搜索靠谱客的其他文章。
发表评论 取消回复