Cod sursa(job #3171102)

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