Cod sursa(job #2718054)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 8 martie 2021 13:44:28
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <bits/stdc++.h>

#define NMAX 500005
#define KMAX 100005
using namespace std;

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

int sum[NMAX], fr[KMAX];

int main()
{
    int n, k, a, b;
    fin >> n >> k >> a >> b;

    for(int i = 1; i <= n; ++i){
        int val;
        fin >> val;

        sum[i] = sum[i - 1] + val;
        sum[i] %= k;
    }

    long long rez = 0;
    for(int i = a; i <= n; ++i){
        if(i >= a)
            fr[sum[i - a]]++;
        if(i > b)
            fr[sum[i - b - 1]]--;
        rez += fr[sum[i]];
    }
    fout << rez << '\n';
    return 0;
}