Cod sursa(job #3351888)

Utilizator fmi-studentnu sunt de acord fmi-student Data 22 aprilie 2026 01:55:24
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <vector>
#include <unordered_map>

std::vector<long long> v;

long long solve(long long k, long long n) {
    std::unordered_map<long long, long long> fr;
    long long l = 0, r = 0, ans = 0, uniq = 0;
    while (r < n) {
        uniq += fr[v[r]] == 0;
        ++fr[v[r]];

        while (uniq > k) {
            --fr[v[l]];
            uniq -= fr[v[l]] == 0;
            ++l;
        }

        ans += r - l + 1;
        ++r;
    }

    return ans;
}

int main() {
    long long n, l, u;
    std::ifstream fin("secv5.in");
    fin >> n >> l >> u;
    for (long long i = 0; i < n; ++i) {
        long long temp;
        fin >> temp;
        v.push_back(temp);
    }

    std::ofstream fout("secv5.out");
    fout << solve(u, n) - solve(l - 1, n) << std::endl;

    return 0;
}