Pagini recente » Cod sursa (job #2171709) | Cod sursa (job #325939) | Cod sursa (job #801313) | Cod sursa (job #2690346) | Cod sursa (job #636590)
Cod sursa(job #636590)
#include<iostream>
#include<cstdio>
#include<fstream>
using namespace std;
int v[1000000+5];
#define DIM 8192
char ax[DIM+16];
int idx;
inline void cit(int &x)
{
x=0;
while(ax[idx]<'0' || ax[idx]>'9')
if(++idx==DIM)fread(ax, 1, DIM, stdin), idx=0;
while(ax[idx]>='0' && ax[idx]<='9')
{
x=x*10+ax[idx]-'0';
if(++idx==DIM)fread(ax,1, DIM, stdin),idx=0;
}
}
int main()
{
int d,n,k,x=0,t=0,nr=1,sol=0;
freopen("zombie.in","rt",stdin);
freopen("zombie.out","wt",stdout);
// cin>>d>>n>>k;
cit(d);
cit(n);
cit(k);
//scanf("%d %d %d",&d,&n,&k);
if(n==1)
{
// cout<<"1\n";
printf("%d\n",sol);
return 0;
}
// cerr<<k;
for(int i=0;i<n;++i)
//scanf("%d",&v[i]);
cit(v[i]);
for(int i=1;i<n;++i)
{
t+=v[i]-v[i-1];
if(t>=d)
{
if(nr<k)
sol++,t-=v[x+1]-v[x],x++;//+1?
else
sol+=k,nr=0,t=0,x=i+1;
}
else
nr++;//,cerr<<"nr="<<nr<<'\n';
}
//cerr<<nr<<'\n';
if(nr>0) {if(nr<k) sol+=nr; else sol+=k;}
// cout<<sol<<'\n';
printf("%d\n",sol);
//cerr<<sol<<'\n';
return 0;
}