Pagini recente » Cod sursa (job #1370247) | Cod sursa (job #2224368) | Monitorul de evaluare | Cod sursa (job #2224807) | Cod sursa (job #3880)
Cod sursa(job #3880)
#include <stdio.h>
#define INF "divk.in"
#define OUF "divk.out"
#define NMAX 500001
int main()
{
unsigned long i,t,a[NMAX],li,ls,n,sum=0;
register unsigned long j,f,s,k;
unsigned long long nr=0;
FILE *in,*out;
in=fopen(INF,"r");
out=fopen(OUF,"w");
fscanf(in,"%ld%ld%ld%ld",&n,&k,&li,&ls);
for(i=1;i<=n;i++)
{
fscanf(in,"%ld",&f);
a[i]=f%k;
}
for(i=1;i<li;i++) sum+=a[i];
for(i=li;i<=n;i++)
{
f=i+ls-li;
sum+=a[i]-a[i-li];
s=sum;
if(f>n) f=n;
if(s%k==0&&s>0) nr++;
for(j=i+1;j<=f;j++)
{
s+=a[j];
if(s%k==0&&s>0) nr++;
}
}
fprintf(out,"%lld",nr);
fclose(in);fclose(out);
}