Cod sursa(job #2890485)

Utilizator avethegamerAveTheGamer avethegamer Data 15 aprilie 2022 17:49:48
Problema Secventa 5 Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb

#include <bits/stdc++.h>

using namespace std;

ifstream in("secv5.in");
ofstream out("secv5.out");

int nrSecv(unsigned long long D, vector<long long> v) {
    unordered_map<unsigned int, int> map;
    long long j = 0, nr = 0;
    long long k = v.size();
    for (long long i = 0; i < k; i++) {
        map[v[i]]++;
        while (map.size() > D) {
            map[v[j]]--;
            if (map[v[j]] == 0) {
                map.erase(map.find(v[j]));
            }
            j++;
        }
        nr += (i - j + 1);
    }
    return nr;
}

int main() {
    unsigned long long L, U, N;
    in >> N >> L >> U;
    long long curent;
    vector<long long> inc;
    for (long long i = 0; i < N; ++i) {
        in >> curent;
        inc.push_back(curent);
    }
    out << nrSecv(U, inc) - nrSecv(L - 1, inc);
    in.close();
    out.close();
    return 0;
}