Cod sursa(job #1649912)

Utilizator Tiberiu02Tiberiu Musat Tiberiu02 Data 11 martie 2016 15:43:40
Problema Divk Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.61 kb
# include <stdio.h>
# include <stdlib.h>

# define MAXN 500000
# define MAXK 100000

int v[MAXN + 1];
int rest[MAXK];

int main()
{
    FILE *fin = fopen( "divk.in", "r" ), *fout = fopen( "divk.out", "w" );

    int n, k, a, b, s, i;

    fscanf( fin, "%d%d%d%d", &n, &k, &a, &b );

    s = 0;
    for ( i = 1; i <= n; i ++ ) {
        fscanf( fin, "%d", &v[i] );
        v[i] %= k;

        if ( i - b - 1 >= 0 )
            rest[v[i - b - 1]] --;
        if ( i - a >= 0 )
            rest[v[i - a]] ++;

        s += rest[v[i]];
    }

    fprintf( fout, "%d", s );

    fclose( fin );
    fclose( fout );

    return 0;
}