Cod sursa(job #3234818)

Utilizator elbarosPetre Tudor elbaros Data 11 iunie 2024 20:46:32
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <vector>
#include <fstream>
#include <algorithm>
using namespace std;

const int nmax = 5e5 + 10;
const int kmax = 1e5 + 10;

int n, k, a, b, v[nmax];
long long s[nmax], res;
int cnt[kmax];

int main() {
    ifstream in("divk.in");
    ofstream out("divk.out");

    in >> n >> k >> a >> b;
    for (int i = 1; i <= n; i++) {
        in >> v[i];
        s[i] = (s[i - 1] + v[i]) % k;

        if (i >= a) {
            cnt[s[i - a]]++;
        }
        res += cnt[s[i]];
        if (i >= b) {
            cnt[s[i - b]]--;
        }
    }

    out << res << "\n";
    return 0;
}