Cod sursa(job #3270454)

Utilizator amalia_ghicaAmalia Ghica amalia_ghica Data 23 ianuarie 2025 14:45:10
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;
long long v[1050000];
unordered_map <long long, int> m;
int main()
{
    ifstream cin("secv5.in");
    ofstream cout("secv5.out");
    long long n, l, u, val, cnt;
    cin >> n >> l >> u;
    for(int i = 0; i < n; i++){
        cin >> v[i];
    }
    val = cnt = 0;
    int x, y;
    x = y = 0;
    val = 0;
    while(y < n){
        m[v[y]]++;
        if(m[v[y]] == 1){
            val++;
        }
        while(val > u){
            m[v[x]]--;
            if(m[v[x]] == 0){
                val--;
            }
            x++;
        }
        cnt += y - x;
        y++;
    }
    x = y = 0;
    m.clear();
    val = 0;
    while(y < n){
        m[v[y]]++;
        if(m[v[y]] == 1){
            val++;
        }
        while(val >= l){
            m[v[x]]--;
            if(m[v[x]] == 0){
                val--;
            }
            x++;
        }
        cnt -= y - x;
        y++;
    }
    cout << cnt;
    return 0;
}