Description
Vanya smashes potato in a vertical food processor. At each moment of time the height of the potato in the processor doesn‘t exceed h and the processor smashes k centimeters of potato each second. If there are less than k centimeters remaining, than during this second processor smashes all the remaining potato.
Vanya has n pieces of potato, the height of the i-th piece is equal to ai. He puts them in the food processor one by one starting from the piece number 1 and finishing with piece number n. Formally, each second the following happens:
- If there is at least one piece of potato remaining, Vanya puts them in the processor one by one, until there is not enough space for the next piece.
- Processor smashes k centimeters of potato (or just everything that is inside).
Provided the information about the parameter of the food processor and the size of each potato in a row, compute how long will it take for all the potato to become smashed.
Input
The first line of the input contains integers n, h and k (1 ≤ n ≤ 100 000, 1 ≤ k ≤ h ≤ 109) — the number of pieces of potato, the height of the food processor and the amount of potato being smashed each second, respectively.
The second line contains n integers ai (1 ≤ ai ≤ h) — the heights of the pieces.
Output
Print a single integer — the number of seconds required to smash all the potatoes following the process described in the problem statement.
Examples
input
5 6 35 4 3 2 1
output
5
input
5 6 35 5 5 5 5
output
10
input
5 6 31 2 1 1 1
output
2
Note
Consider the first sample.
- First Vanya puts the piece of potato of height 5 into processor. At the end of the second there is only amount of height 2 remaining inside.
- Now Vanya puts the piece of potato of height 4. At the end of the second there is amount of height 3 remaining.
- Vanya puts the piece of height 3 inside and again there are only 3 centimeters remaining at the end of this second.
- Vanya finally puts the pieces of height 2 and 1 inside. At the end of the second the height of potato in the processor is equal to 3.
- During this second processor finally smashes all the remaining potato and the process finishes.
In the second sample, Vanya puts the piece of height 5 inside and waits for 2 seconds while it is completely smashed. Then he repeats the same process for 4 other pieces. The total time is equal to 2·5 = 10 seconds.
In the third sample, Vanya simply puts all the potato inside the processor and waits 2 seconds.
模拟,如果土豆总量不超过界限的话,就可以一直放,如果超过界限,只能等剩下的处理完再放,也就是 剩余+下一个>界限 次数加一,pos等于下一个值
1 #include<iostream> 2 #include<stdio.h> 3 using namespace std; 4 int main() 5 { 6 long long n,num,time; 7 long long length; 8 long long a; 9 long long cot=0; 10 long long sum=0; 11 long long pos=0; 12 cin>>n>>num>>length; 13 for(int i=1;i<=n;i++) 14 { 15 cin>>a; 16 sum=pos+a; 17 if(sum>num) 18 { 19 cot++; 20 sum=a; 21 } 22 cot+=(sum/length); 23 pos=(sum%length); 24 } 25 if(pos) 26 { 27 cot++; 28 } 29 cout<<cot<<endl; 30 return 0; 31 }