Pagini recente » Cod sursa (job #1990331) | Cod sursa (job #542914) | Cod sursa (job #2291569) | Istoria paginii runda/primuld | Cod sursa (job #291258)
Cod sursa(job #291258)
#include<stdio.h>
long n,k,a,b,i,aa,s[500005],v[500005],sum;
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%ld%ld%ld%ld",&n,&k,&a,&b);
for(i=1;i<=n;++i)
{scanf("%ld",&aa);
s[i]=s[i-1]+aa;}
for(i=1;i<b;++i)
{if(i>=a)++v[s[i-a]%k];
sum+=v[s[i]%k];}
v[s[b-a]%k]++;
for(i=b;i<=n;++i)
{sum+=v[s[i]%k];
v[s[i-b]%k]--;
v[s[i-a+1]%k]++;}
printf("%ld\n",sum);
return 0;
}