Pagini recente » Cod sursa (job #2214463) | Cod sursa (job #2487039) | Cod sursa (job #1917104) | Cod sursa (job #2831031) | Cod sursa (job #277892)
Cod sursa(job #277892)
#include <stdio.h>
int nr=0,v[500100],s,q[500100],n,k,i,j,suma=0,a,b,x;
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%d %d %d %d",&n,&k,&a,&b);
for (i=1;i<=n;++i)
{
scanf("%d", &s);
suma+=s;
v[i]=suma;
}
/*for (i=1;i<n;++i)
{
suma=x=0;
for (j=i;j<=n;++j)
{
suma+=v[j];
x++;
if (suma%k==0 && x>=a && x<=b)
nr++;
else
if (x>b) break;
}
} */
for (i=1;i<=n;++i)
{
for (j=i-b;j<=i-a+1;++j)
v[j%k]++;
q[v[i-b+1]%k]--;
q[v[i-a+2]%k]++;
}
for (i=1;i<=n;++i)
nr+=q[v[i]%k];
printf("%d", nr);
return 0;
}