Cod sursa(job #3270448)

Utilizator amalia_ghicaAmalia Ghica amalia_ghica Data 23 ianuarie 2025 14:39:55
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <map>

using namespace std;
ifstream cin("secv5.in");
ofstream cout("secv5.out");
int v[1100005];
map <int, int> m;
int main()
{
    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;
}