Cod sursa(job #2877062)

Utilizator AlexPascu007Pascu Ionut Alexandru AlexPascu007 Data 24 martie 2022 09:07:18
Problema Secventa 5 Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;

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

long long n, l, u, v[(1 << 20) + 5];

long long solve(int k) {
    unordered_map<long long, int> m;
    long long sol = 0;
    for (long long dr = 1, st = 1; dr <= n; dr++) {
        m[v[dr]] += 1;
        while (m.size() > k) {
            m[v[st]] -= 1;
            if (m[v[st]] == 0)
                m.erase(v[st]);
            st++;
        }
        sol = 1LL * (sol + dr - st);
    }
    return sol;
}

int main() {
    fin >> n >> l >> u;
    for (long long i = 1; i <= n; i++)
        fin >> v[i];
    fout << solve(u) - solve(l - 1);
    return 0;
}