Pagini recente » Cod sursa (job #2169320) | Cod sursa (job #1734527) | Cod sursa (job #2065986) | Cod sursa (job #1172108) | Cod sursa (job #1435942)
#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 < unsigned int, unsigned int > Hash;
int N;
unsigned int v[Nmax];
long long Solve ( int x ){
Hash.clear();
int st = 1;
long long 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;
}