Cod sursa(job #291258)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 29 martie 2009 16:46:17
Problema Divk Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.45 kb
#include<stdio.h>
long n,k,a,b,i,aa,s[500005],v[500005],sum;
int main()
{
 freopen("divk.in","r",stdin);
 freopen("divk.out","w",stdout);
 scanf("%ld%ld%ld%ld",&n,&k,&a,&b);
 for(i=1;i<=n;++i)
    {scanf("%ld",&aa);
     s[i]=s[i-1]+aa;}
 for(i=1;i<b;++i)
    {if(i>=a)++v[s[i-a]%k];
     sum+=v[s[i]%k];}
 v[s[b-a]%k]++;
 for(i=b;i<=n;++i)
    {sum+=v[s[i]%k];
     v[s[i-b]%k]--;
     v[s[i-a+1]%k]++;}
 printf("%ld\n",sum);
 return 0;
}