Cod sursa(job #2429408)

Utilizator PatrickCplusplusPatrick Kristian Ondreovici PatrickCplusplus Data 9 iunie 2019 15:14:56
Problema Divk Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, k, a, b, sol;
vector <int> v;
unordered_map <int, vector <int> > p;

int main()
{
    fin >> n >> k >> a >> b;
    v.resize(n + 1);
    p[0].push_back(0);
    for (int i = 1; i <= n; ++i)
    {
        fin >> v[i];
        v[i] = (v[i - 1] + v[i]) % k;
        sol = sol + (upper_bound(p[v[i]].begin(), p[v[i]].end(), i - a) - lower_bound(p[v[i]].begin(), p[v[i]].end(), i - b));
        p[v[i]].push_back(i);
    }
    fout << sol;
    return 0;
}