Cod sursa(job #3318151)

Utilizator RuxandraPro12_Metehau Ruxandra Maria RuxandraPro12_ Data 27 octombrie 2025 12:36:44
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;

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

const int N_MAX = 1 << 20;
int n, l, u;
int v[N_MAX + 5];
long long secvente(int v[], int m) {
    long long cnt = 0;
    map<int, int> f;
    int st = 1, distincte = 0;
    for (int dr = 1; dr <= n; dr++) {
        if (f[v[dr]] == 0)
            distincte++;
        f[v[dr]]++;
        while (distincte > m && st <= dr) {
            f[v[st]]--;
            if (f[v[st]] == 0)
                distincte--;
            st++;
        }
        cnt += dr - st + 1;
    }
    return cnt;
}

int main() {
    fin >> n >> l >> u;
    for (int i = 1; i <= n; i++)
        fin >> v[i];
    long long cntu = secvente(v, u), cntl = secvente(v, l - 1);
    fout << cntu - cntl << "\n";
    return 0;
}