Pagini recente » Cod sursa (job #635402) | Cod sursa (job #429578) | Cod sursa (job #2939422) | Cod sursa (job #635291) | Cod sursa (job #2773505)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("zombie.in");
ofstream fout ("zombie.out");
int st, md, dr;
int d, n, k, x, lst;
int v[1000005], dp[1000005];
long long s[1000005];
int main (){
fin>>d>>n>>k>>lst;
for(int i=1; i<n; i++){
fin>>x;
v[i]=x-lst;
lst=x;
}
for(int i=1; i<k; i++){
dp[i]=dp[i-1]+1;
s[i]=s[i-1] + v[i];
}
for(int i=k; i<n; i++){
x=v[i];
s[i]=s[i-1] + x;
st=1;
dr=i-k+1;
while(st <= dr){
md=(dr-st)/2+st;
if(s[i]-s[md-1] >= d)
st=md+1;
else
dr=md-1;
}
//cout<<st<<" ";
dp[i]=min(dp[i-1]+1, dp[st-1]+k);
}
fout<<dp[n-1];
return 0;
}