Cod sursa(job #2712566)

Utilizator Alex_tz307Lorintz Alexandru Alex_tz307 Data 25 februarie 2021 23:22:14
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 5e5 + 5;
const int KMAX = 1e5 + 5;
int N, K, A, B, x, sum[NMAX], freq[KMAX];
long long ans;

int main() {
    fin >> N >> K >> A >> B;
    for(int i = 1; i <= N; ++i) {
        fin >> x;
        sum[i] = (sum[i - 1] + x) % K;
    }
    for(int i = 1; i <= N; ++i) {
        if(i >= A)
            ++freq[sum[i - A]];
        if(i > B)
            --freq[sum[i - B - 1]];
        ans += freq[sum[i]];
    }
    fout << ans << '\n';
}