Pagini recente » Cod sursa (job #449035) | Cod sursa (job #637849) | Cod sursa (job #1224077) | Cod sursa (job #1530120) | Cod sursa (job #1435939)
#include <cstdio>
#include <unordered_map>
#include <algorithm>
using namespace std;
#define Nmax (( 1 << 20 ) + 1)
FILE *f = fopen ( "secv5.in", "r" );
FILE *g = fopen ( "secv5.out", "w" );
unordered_map < int, int > Hash;
int N, 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;
fscanf ( f, "%d%d%d", &N, &L, &U );
for ( int i = 1; i <= N; ++i )
fscanf ( f, "%d", &v[i] );
fprintf ( g, "%d", Solve ( U ) - Solve ( L - 1 ) );
return 0;
}