Pagini recente » Cod sursa (job #1104895) | Cod sursa (job #2782544) | Cod sursa (job #1333497) | Cod sursa (job #1008225) | Cod sursa (job #2666238)
#include <stdio.h>
#include <stdlib.h>
#define at20 1048576
#define FUNCTIE 10007///functia hash va fi %FUNCTIE
unsigned int h[FUNCTIE][1001];
int v[at20];
short p[FUNCTIE][1001];
///Pe 0 voi tine marime a hashului
int exista(unsigned int x){
unsigned int i=x%FUNCTIE,j,poz;
poz=0;
for(j=1;j<=h[i][0];j++)
if(h[i][j]==x)
poz=j;
return poz;
}
void add(unsigned int x,int j){
unsigned int i=x%FUNCTIE,poz=exista(x);
h[i][0]++;
h[i][h[i][0]]=x;
p[i][h[i][0]]=j;
v[j]=-1;
if(poz!=0)
v[j]=p[i][poz];
}
int main(){
FILE *fin, *fout;
int n,i,j,l,u;
unsigned int x;
long long sum,s;
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 && s<=u)
sum++;
j++;
}
}
fout=fopen("secv5.out","w");
fprintf(fout,"%lld\n",sum);
fclose(fout);
return 0;
}