Cod sursa(job #1126207)

Utilizator Theorytheo .c Theory Data 26 februarie 2014 21:53:35
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream fin ("divk.in");
ofstream fout ("divk.out");

const int NMAX = 500009;
const int KMAX = 100009;

int N; int K; int A; int B;long long V[NMAX];long long nr[NMAX]; long long sol; long long T[NMAX];


int main() {

    fin >> N >> K >> A >>B;
    int sum = 0;

    for(int i = 1; i <= N; ++i) {
        fin >> V[i];
        T[i] = (T[i - 1] + V[i]) % K;
        if(i >= A) nr[T[i - A]]++;


        if(i > B) nr[T[ i - B - 1 ]]--;
        sol += nr[T[i]];
    }

    fout << sol;

    return 0;
}