Pagini recente » Cod sursa (job #710428) | Cod sursa (job #456207) | Cod sursa (job #2795215) | Cod sursa (job #1076001) | Cod sursa (job #638283)
Cod sursa(job #638283)
#include<stdio.h>
#include<ctype.h>
#include<fstream>
using namespace std;
ifstream f("zombie.in");
#define MaxN 1000100
int N,D,K,A[MaxN];
int B[MaxN];
void citire(void)
{
f >> D >> N >> K;
for(int i=1;i<=N;i++)
f >> A[i];
}
int binary_search(int li,int ls,int a)
{
if(li <= ls)
if(A[(li+ls)/2] == a)
return (li+ls)/2-1;
else if(A[(li+ls)/2] > a)
return binary_search(li,(li+ls)/2-1,a);
else
return binary_search((li+ls)/2+1,ls,a);
return ls;
}
void zombie(void)
{
int c;
for(int i=1;i<=N;i++)
{
B[i] = B[i-1]+1;
c = binary_search(1,i-1,A[i]-D);
if(B[i] > B[c]+K)
B[i] = B[c] + K;
}
}
int main()
{
FILE *g = fopen("zombie.out","w");
citire();
zombie();
fprintf(g,"%d ",B[N]);
fclose(g);
return 0;
}