Pagini recente » Cod sursa (job #959660) | Cod sursa (job #464502) | Cod sursa (job #744506) | Cod sursa (job #368689) | Cod sursa (job #667413)
Cod sursa(job #667413)
#include <cstdio>
#include <vector>
using namespace std;
#define MAXN ((1<<20)+10)
#define MOD 80011
vector<unsigned> H[MOD];
void hash_add(unsigned x){
int key;
key=x%MOD;
H[key].push_back(x);
}
int hash_find(unsigned x){
int key;
vector<unsigned>::iterator ii;
key=x%MOD;
for(ii=H[key].begin(); ii!=H[key].end(); ii++)
if(*ii == x)
return 1;
return 0;
}
void hash_remove(unsigned x){
int key;
key=x%MOD;
H[key].clear();
}
int main(){
freopen("secv5.in", "r", stdin);
freopen("secv5.out", "w", stdout);
int N, L, R, i, j, cnt, res;
static unsigned A[MAXN];
scanf("%d%d%d", &N, &L, &R);
for(i=0; i<N; i++)
scanf("%u", A+i);
res=0;
for(i=0; i<N; i++){
cnt=1; hash_add(A[i]);
for(j=i+1; j<N; j++){
if(!hash_find(A[j])){
cnt++;
hash_add(A[j]);
}
if(L <= cnt && cnt <= R)
res++;
}
for(j=i+1; j<N; j++)
hash_remove(A[j]);
}
printf("%d\n", res);
return 0;
}