Cod sursa(job #3267662)

Utilizator CosminaneBoac Mihai Cosmin Cosminane Data 11 ianuarie 2025 18:59:39
Problema Secventa 5 Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <fstream>
#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
unordered_map <unsigned int, int> f1, f2;
vector <unsigned int> v;
int main(){
    int n, l, u, i, j, k, tot1, tot2;
    unsigned int x;
    long long r;
    ifstream fin( "secv5.in" );
    ofstream fout( "secv5.out" );
    fin >> n >> l >> u;
    tot1 = tot2 = r = j = k = 0;
    for( i = 0; i < n; i++ ){
        fin >> x;
        v.push_back( x );
        f1[x]++;
        f2[x]++;
        if( f1[x] == 1 ){
            tot1++;
        }
        if( f2[x] == 1 ){
            tot2++;
        }
        //cout << x << ' ' << i << ' ' << j << ' ' << k << ' ' << tot1 << ' ' << tot2 << '\n';
        while( tot1 > u ){
            f1[v[j]]--;
            if( f1[v[j]] == 0 ){
                tot1--;
            }
            j++;
        }
        while( tot2 >= l ){
            f2[v[k]]--;
            if( f2[v[k]] == 0 ){
                tot2--;
            }
            k++;
        }
        r += k - j;
        //cout << j << ' ' << k << '\n';
    }
    fout << r;
    return 0;
}