Cod sursa(job #462568)

Utilizator SpiderManSimoiu Robert SpiderMan Data 11 iunie 2010 17:10:17
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
# include <cstdio>

const char FIN[] = "divk.in", FOU[] = "divk.out";
const int MAX = 500005;

int sum[MAX], V[MAX];
int N, K, A, B, vec;
long long T;

int main ()
{
    freopen ( FIN, "r", stdin ) ;
    freopen ( FOU, "w", stdout ) ;

    scanf ( "%d %d %d %d", &N, &K, &A, &B);

    for (int i = 1; i <= N; ++i)
    {
       scanf ( "%d", &vec ), sum[i] = ( sum[i - 1] + vec ) % K;
       i > B ? --V[ sum[i - B - 1] ] : 0 ;
       i >= A ? ++V[ sum[i - A] ] : 0 ;

       T += V[ sum[ i ] ];
    }


    printf ( "%lld", T );

    return 0;
}