Pagini recente » Cod sursa (job #1396173) | Cod sursa (job #1099406) | Cod sursa (job #1459340) | Cod sursa (job #1212123) | Cod sursa (job #1396180)
#include<cstdio>
#include<vector>
using namespace std;
int n,k,A,B,i,j,l,x,nr;
int rest[500003],sum[500003];
long long nre;
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",&sum[i]);
sum[i]+=sum[i-1];
sum[i]%=k;
if(A<=i && i<=B) ++rest[sum[i]];
}
for(i=0;i<=n-A;i++)
{
nr=sum[i];
nre+=rest[nr];
--rest[sum[i+A]];
if(i+B+1<=n) ++rest[sum[i+B+1]];
}
printf("%d\n",nre);
}