Cod sursa(job #3171115)

Utilizator andreidumitrache1709Dumitrache Andrei Bogdan andreidumitrache1709 Data 18 noiembrie 2023 13:20:17
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.78 kb
#include <fstream>
#include <unordered_map>
using namespace std;
long long v[1048577];
int n;
long long count ( int x ) {
    int l , r , nr;
    unordered_map <long long , int> frecv;
    long long ans;
    l = r = nr = ans = 0;
    while ( r < n ){
        frecv[v[r]]++;
        if ( frecv[v[r]] == 1 )
            nr++;
        r++;
        while ( nr > x ) {
            frecv[v[l]]--;
            if ( frecv[v[l]] == 0 )
                nr--;
            l++;
        }
        ans += r - l;
    }
    return ans;
}
int main() {
    ifstream cin ( "secv5.in" );
    ofstream cout ( "secv5.out" );
    int x , y , i;
    cin >> n >> x >> y;
    for ( i = 0 ; i < n ; i++ )
        cin >> v[i];
    cout << count ( y ) - count ( x - 1 ) << '\n';
    return 0;
}