Cod sursa(job #3186468)

Utilizator mihai234Mihai Sercaianu mihai234 Data 23 decembrie 2023 10:34:35
Problema Secventa 5 Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <unordered_map>
#define MAXN 1048576
using namespace std;
long long v[MAXN + 1];
int cnt( int n, int x ) {
    int r, l, k;
    unordered_map<long long, int> f;
    long long ans;
    r = l = k = ans = 0;
    while ( r < n ) {
        f[v[r]]++;
        if ( f[v[r]] == 1 ) 
            k++;
        r++;
        while ( k > x ) {
            f[v[l]]--;
            if ( f[v[l]] == 0 )
                k--;
            l++;
        }
        ans += r - l;
    }
    return ans;
}
int main()
{
    ifstream fin( "secv5.in" );
    ofstream fout( "secv5.out" );
    int n, i, x, y;
    fin >> n >> x >> y;
    for ( i = 0; i < n; i++ ) 
        fin >> v[i];
    fout << cnt( n, y ) - cnt( n, x - 1 ) << '\n';
    return 0;
}