Cod sursa(job #331827)
Utilizator | Data | 15 iulie 2009 14:13:08 | |
---|---|---|---|
Problema | Divk | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include<stdio.h>
int i,rez,n,k,x,y,a[500010],v[100001];
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%d %d %d %d",&n,&k,&x,&y);
for(i=1;i<=n;i++) { scanf("%d",&a[i]);
a[i]+=a[i-1];
}
v[0]=1;
for(i=x;i<=n;i++) { rez+=v[a[i]%k];
v[a[i-x+1]%k]++;
if(i-y>=0) --v[a[i-y]%k];
}
printf("%d\n",rez);
fclose(stdin);
fclose(stdout);
return 0;
}