Pagini recente » Istoria paginii utilizator/theazar | Diferente pentru utilizator/rughibem intre reviziile 10 si 20 | Diferente pentru utilizator/blueluca888 intre reviziile 26 si 28 | Istoria paginii utilizator/vladcoroian2001 | Cod sursa (job #510264)
Cod sursa(job #510264)
#include <stdio.h>
int a,b,n,k,v[500001],i,m[500001];
long long rez;
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",&v[i]);
v[i]+=v[i-1];
v[i]%=k;
}
m[0]=1;
for(i=a;i<=n;i++){
rez+=m[v[i]];
m[v[i-a+1]]++;
if(i>=b){
m[v[i-b]]--;
}
}
printf("%lld",rez);
}