Cod sursa(job #935681)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 4 aprilie 2013 13:40:23
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>
long long n , k , a , b , sp[500007] , sum , ap[500007];
int main()
{
    freopen("divk.in" , "r" , stdin);
    freopen("divk.out" , "w" , stdout);
    scanf("%lld %lld %lld %lld" , &n , &k , &a , &b);
    for(int i=1 ; i<=n ; ++i)
    {
        int c;
        scanf("%lld" , &c);
        sp[i]=(sp[i - 1]  + c) % k;
    }
    for(int i=1 ; i<=n ; ++i)
    {
        if(i - a >= 0)
            ++ap[sp[i - a]];
        if(i - b > 0)
            --ap[sp[i - b - 1]];
        sum+=ap[sp[i]];
    }
    printf("%lld\n" , sum);
    return 0;
}