Pagini recente » Cod sursa (job #782954) | Cod sursa (job #1634625) | Cod sursa (job #2461073) | Cod sursa (job #3138786) | Cod sursa (job #1654061)
#include <stdio.h>
#define nmax 500010
using namespace std;
int n,k,a,b;
int t[nmax],sum[nmax];
int v[nmax/5];
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%d %d %d %d",&n,&k,&a,&b);
for (int i=1;i<=n;i++) scanf("%d",&t[i]);
for (int i=1;i<=n;i++) sum[i]=(sum[i-1]+t[i])%k;
v[0]++; long long int sol=0;
for (int i=a;i<=n;i++) {
sol=sol+v[sum[i]];
if (i-b>=0) v[sum[i-b]]--;
v[sum[i-a+1]]++;
}
printf("%d",sol);
return 0;
}