Pagini recente » Cod sursa (job #1047553) | Cod sursa (job #2438840) | Cod sursa (job #2226969) | Cod sursa (job #2888082) | Cod sursa (job #483076)
Cod sursa(job #483076)
#include <stdio.h>
#define NMax 5000000
#define KMax 1000000
const char IN[] ="divk.in";
const char OUT[] ="divk.out";
int start,end,N,K,A,B;
int a[NMax+10];
int S[NMax+10],c[KMax+10];
int main()
{
int i;long long Rez;
freopen(IN,"r",stdin);
freopen(OUT,"w",stdout);
scanf("%d%d%d%d",&N,&K,&A,&B);B++;
start=0;end=-1;
Rez=0;
for (i=1;i<=N;i++)
{
scanf("%d",&a[i]);
S[i] = (S[i-1]+a[i])%K;
}
for (i=A;i<=N;i++)
{
c[ S[i-A] ]++;
if (i>=B) c[S[i-B]]--;
Rez+= c[S[i]];
}
printf("%ld\n",Rez);
fclose(stdin);
fclose(stdout);
return 0;
}