Mai intai trebuie sa te autentifici.

Cod sursa(job #1435940)

Utilizator BLz0rDospra Cristian BLz0r Data 14 mai 2015 19:51:19
Problema Secventa 5 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <unordered_map>
#include <algorithm>
using namespace std;

#define Nmax (( 1 << 20 ) + 1)

ifstream fin ( "secv5.in" );
ofstream fout ( "secv5.out" );

unordered_map < int, int > Hash;
int N;
unsigned int v[Nmax];

int Solve ( int x ){
    Hash.clear();

    int st = 1, ret = 0;

    for ( int dr = 1; dr <= N; ++dr ){
        Hash[v[dr]]++;
        while ( Hash.size() > x ){
            Hash[v[st]]--;
            if ( !Hash[v[st]] )
                Hash.erase(v[st]);
            st++;
        }
        ret += dr - st + 1;
    }
    return ret;
}

int main(){

    int L, U;

    fin >> N >> L >> U;

    for ( int i = 1; i <= N; ++i )
        fin >> v[i];

    fout << Solve ( U ) - Solve ( L - 1 );

    return 0;
}