Cod sursa(job #972300)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 11 iulie 2013 13:59:26
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<stdio.h>
unsigned s[500005],f[100005];
int main()
{
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    unsigned n,k,a,b,i,j;
    unsigned long long m=0;
    scanf("%u%u%u%u",&n,&k,&a,&b);
    for(i=1;i<=n;i++)
    {
        scanf("%u",&j);
        s[i]=(s[i-1]+j)%k;
        if(s[i]==0 && i>=a && i<=b)
            m++;
    }
    for(i=a+1;i<=n;i++)
    {
     f[s[i-a]]++;
     if(i>b+1)
        f[s[i-b-1]]--;
m=m+f[s[i]];
    }
    printf("%llu\n",m);
    return 0;
}