Cod sursa(job #2504026)

Utilizator AndreiJJIordan Andrei AndreiJJ Data 4 decembrie 2019 11:27:08
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>

using namespace std;

/**
    2 1 1 0 1 0
*/

typedef long long ll;
ll fr[500005];
int ps[500005];
int n, a, b, k;

int main()
{
    ifstream fin ("divk.in");
    ofstream fout ("divk.out");
    int i, x;
    fin >> n >> k >> a >> b;
    ++b;
    ll ans = 0;
    for (i = 1; i <= n; i++)
    {
        fin >> x;
        ps[i] = (ps[i - 1] + x) % k;
        if (i >= a)
            ++fr[ps[i - a]];
        if (i >= b)
            --fr[ps[i - b]];
        ans += fr[ps[i]];
    }
    fout << ans << "\n";
    fout.close();
    return 0;
}