Cod sursa(job #3318226)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 27 octombrie 2025 16:19:18
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

#if 0
    #define fin  cin
    #define fout cout
#else
    ifstream fin("divk.in");
    ofstream fout("divk.out");
#endif

long long n, k, a, b, x, i, j, v[500002];
long long sum[500002], nr;

int main() {
    //ios_base::sync_with_stdio(false);
    fin.tie(nullptr);
    fout.tie(nullptr);

    fin >> n >> k >> a >> b;
    for(i = 1; i <= n; i++) {
        fin >> x;
        sum[i] = (sum[i - 1] + x) % k;
    }
    if(b < a) swap(a, b);
    for(j = 1; j <= n; j++) {
        if(j >= a) v[sum[j - a]]++;
        nr += v[sum[j]];
        if(j >= b) v[sum[j - b]]--;
    }
    fout << nr;

    return 0;
}