Pagini recente » Cod sursa (job #788352) | Cod sursa (job #672528) | Cod sursa (job #1903956) | Cod sursa (job #837289) | Cod sursa (job #2661874)
#include <stdio.h>
#include <stdlib.h>
#define FUNCTIE 1000///functia hash va fi %FUNCTIE
int v[1000000],h[FUNCTIE][100001],p[FUNCTIE][100001];
///Pe 0 voi tine marime a hashului
int exista(int x){
int i=x%FUNCTIE,j;
for(j=1;j<=h[i][0];j++)
if(h[i][j]==x)
return j;
return 0;
}
void add(int x,int j){
int i=x%FUNCTIE,poz=exista(x);
if(poz==0){
h[i][0]++;
h[i][h[i][0]]=x;
p[i][h[i][0]]=j;
v[j]=-1;
} else
v[j]=p[i][poz];
}
int main(){
FILE *fin, *fout;
int n,i,j,l,u,x,s;
long long sum;
fin=fopen("secv5.in","r");
fscanf(fin,"%d%d%d",&n,&l,&u);
for(i=0;i<n;i++){
fscanf(fin,"%d",&x);
add(x,i);
}
fclose(fin);
// for(i=0;i<n;i++)
// printf("%d ",v[i]);
// printf("\n");
sum=0;
for(i=0;i<n;i++){
s=0;
j=i;
while(j<n&&s<=u){
if(v[j]==-1||i>v[j])
s++;
if(s>=l)
sum++;
j++;
}
}
fout=fopen("secv5.out","w");
fprintf(fout,"%lld\n",sum);
fclose(fout);
return 0;
}