Pagini recente » Cod sursa (job #2794843) | Cod sursa (job #2794829) | Cod sursa (job #2693414) | Cod sursa (job #2533724) | Cod sursa (job #2166640)
#include <fstream>
using namespace std;
ifstream cin ("zombie.in");
ofstream cout ("zombie.out");
int v[1000100];
int minn[1000100];
int main() {
int d , n , k;
cin>>d>>n>>k;
int MIN = -1;
int pnt = 0;
v[0] = -1e9;
for (int i=1; i<=n; i++){
cin>>v[i];
int old = pnt;
while (v[pnt] < v[i] - d){
pnt++;
}
if (v[pnt] >= v[i] - d){
pnt--;
}
MIN++;
for (int j=old; j<=pnt; j++){
MIN = min(MIN , minn[j] + pnt - j);
}
minn[i] = MIN;
minn[i] += min(i-pnt , k);
//cout<<i<<" "<<MIN<<" "<<pnt<<" "<<k<<" "<<minn[i]<<'\n';
}
cout<<minn[n];
return 0;
}