Pagini recente » Cod sursa (job #2786424) | Cod sursa (job #2168795) | Cod sursa (job #435620) | Cod sursa (job #669552) | Cod sursa (job #973634)
Cod sursa(job #973634)
#include <fstream>
using namespace std;
ifstream f("zombie.in");
ofstream g("zombie.out");
long long N,K,D,Array[1000000],result;
void Read()
{
f>>D>>N>>K;
long long i;
for(i=1;i<=N;i++)
f>>Array[i];
result=0;
}
long long Binary_Search(long long value,long long pozition)
{
long long st=pozition+1,dr=N,mid,sol=-1;
while(st<=dr)
{
mid=(st+dr)/2;
if(Array[mid]-Array[pozition]<=D-1)
{
sol=mid;
st=mid+1;
}
else
dr=mid-1;
}
return sol;
}
void Solve()
{
long long i=1;
while(i<=N)
{
long long pozition;
pozition=Binary_Search(Array[i],i);
if(pozition==-1)
result++;
else
{
if(pozition-i+1>=K)
{
result+=K;
i+=pozition-i+1;
continue;
}
else
{
result++;
i++;
continue;
}
}
i++;
}
g<<result<<"\n";
}
int main()
{
Read();
Solve();
/*for(int i=1;i<=1000000;i++)
g<<i<<" ";*/
return 0;
}