Pagini recente » Cod sursa (job #2621015) | Cod sursa (job #160401) | Cod sursa (job #595119) | Borderou de evaluare (job #244553) | Cod sursa (job #502903)
Cod sursa(job #502903)
#include<stdio.h>
int n,k,a,b,v[500100],i,l,j,nr[500100];
long long int s;
FILE *fin,*fout;
int main(){
fin=fopen("divk.in","r");
fout=fopen("divk.out","w");
fscanf(fin,"%d %d %d %d",&n,&k,&a,&b);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&v[i]);
v[i]=(v[i]+v[i-1])%k;
}
nr[0]=1;
for(i=a;i<=n;i++){
s+=nr[v[i]];
nr[v[i-a+1]]++;
if(i>=b)
nr[v[i-b]]--;
}
fprintf(fout,"%lld",s);
return 0;}