Pagini recente » Cod sursa (job #1605937) | Cod sursa (job #2785780) | Cod sursa (job #579504) | Cod sursa (job #2565083) | Cod sursa (job #637848)
Cod sursa(job #637848)
#include <fstream>
using namespace std;
#define NMAX 1000004
int z[NMAX],cz[NMAX];
inline int min(int a, int b)
{
return (a<b?a:b);
}
int binsearch(int st, int dr, int key)
{
int m;
do
{
m=(st+dr)>>1;
if (key>z[m]) st=m+1;
else dr=m;
}
while (st<dr);
return dr;
}
int main()
{
int D,n,k,i,poz;
ifstream fin("zombie.in");
fin>>D>>n>>k;
cz[0]=0;
fin>>z[1]; cz[1]=1;
for (i=2;i<=n;++i)
{
fin>>z[i];
poz=binsearch(1,i-1,z[i]-D+1);
if (poz<i && z[poz]>=z[i]-D+1)
cz[i]=min(cz[i-1]+1,cz[poz-1]+k);
else cz[i]=cz[i-1]+1;
}
ofstream fout("zombie.out");
fout<<cz[n]<<"\n";
return 0;
}