Cod sursa(job #1049408)

Utilizator DGVanceaDragos Gabriel Vancea DGVancea Data 7 decembrie 2013 12:30:47
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("divk.in");
ofstream fout ("divk.out");
const int N = 500001;
const int K = 100001;
long long n , k , a , b , r[N], nr[K], rez;
int main()
{

    fin >> n >> k >> a >> b;
    for (int i = 1; i <=n ; i++ ){
        int x;

        fin>>x;

        r[i] = ( r[ i-1 ] + x ) % k ;
        if ( i > b )
            nr [ r [ i - b - 1 ] ] -- ;

        if ( i >= a )
            nr [ r [ i-a ] ] ++ ;


        rez = rez + nr [ r[ i ] ] ;
    }
    fout << rez;
    return 0;
}