Cod sursa(job #1288782)

Utilizator Mihai_BogdanDumitru Mihai Mihai_Bogdan Data 9 decembrie 2014 05:29:03
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 kb
#include<stdio.h>
long 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("%lld%lld%lld%lld",&n,&k,&a,&b);
 for(i=1;i<=n;++i)
    {scanf("%lld",&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("%lld\n",sum);
 return 0;
}