Cod sursa(job #3350035)

Utilizator GabrielaTudoracheTudorache Gabriela GabrielaTudorache Data 4 aprilie 2026 21:22:43
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

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

// numara subsecventele cu cel mult k elemente distincte
long long nr_subsecv(vector<long long>& a, int n, int k) {
    unordered_map<long long, int> freq;
    long long rez = 0;
    int st = 0;

    for (int dr = 0; dr < n; dr++) {
        freq[a[dr]]++;

        while (freq.size() > k) {
            freq[a[st]]--;
            if (freq[a[st]] == 0) freq.erase(a[st]);
            st++;
        }

        rez += dr - st + 1;
    }

    return rez;
}

int main() {
    int n, l, u;
    fin >> n >> l >> u;

    vector<long long> a(n);
    for (int i = 0; i < n; i++) {
        fin >> a[i];
    }

    fout << nr_subsecv(a, n, u) - nr_subsecv(a, n, l - 1);
}