Mai intai trebuie sa te autentifici.
Cod sursa(job #1435940)
Utilizator | 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;
}