Pagini recente » Cod sursa (job #71048) | Cod sursa (job #1728220) | Cod sursa (job #2386788) | Cod sursa (job #1467737) | Cod sursa (job #333232)
Cod sursa(job #333232)
#include <stdio.h>
FILE *in, *out;
long long int n,k,a,b,i,rez,s[500005],v[1000000];
int main()
{
in=fopen("divk.in","r");
out=fopen("divk.out","w");
fscanf(in,"%lld %lld %lld %lld\n",&n,&k,&a,&b);
rez=0;
for(i=1;i<=n;i++)
{
fscanf(in,"%lld\n",&s[i]);
s[i]+=s[i-1];
}
for(i=0;i<=b-a+1;i++)
{
v[s[i]%k]++;
rez+=v[s[i+a]%k];
}
v[0]--;
if(v[0]<0)
v[0]=0;
//1 2 3 4 5 6 7
for(i=b-a+2;i<=n-a;i++)
{
v[s[i-(b-a+1)]%k]--;
v[s[i]%k]++;
rez+=v[s[i+a]%k];
}
fprintf(out,"%lld\n",rez);
fclose(out);
return 0;
}