Cod sursa(job #1883459)

Utilizator roxannemafteiuMafteiu-Scai Roxana roxannemafteiu Data 17 februarie 2017 23:22:08
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

int n, k, a, b;
int64_t solution;
vector <int> v, dp;

void read() {
    ifstream fin("divk.in");

    fin >> n >> k >> a >> b;
    v.resize(n + 1); dp.resize(n + 1);
    for (int i = 1; i <= n; ++i) {
        fin >> v[i];
        v[i] = (v[i] + v[i - 1]) % k;

        if (i >= a)  {
            ++dp[v[i - a]];
        }

        if (i > b) {
            --dp[v[i - b - 1]];
        }

        solution += dp[v[i]];
    }

    fin.close();
}

void write() {
    ofstream fout("divk.out");

    fout << solution;

    fout.close();
}

int main() {
    read();
    write();
    return 0;
}