Cod sursa(job #11460)

Utilizator devilkindSavin Tiberiu devilkind Data 31 ianuarie 2007 18:42:19
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <map>
#define NMAX (1 << 20) +1
using namespace std;

map<long int,long int> hash;

FILE *f = fopen("secv5.in","rt"), *g = fopen("secv5.out","wt");

long int a[NMAX],i,j,k,n,min1,max1,v[NMAX],sol;

void citire()
{
long int nr=0;
fscanf(f,"%ld %ld %ld",&n,&min1,&max1);
for (i=1;i<=n;i++)
    {fscanf(f,"%ld",&a[i]);
/*    if (hash[k]) a[i]=hash[k];
       else {a[i]=++nr;
            hash[k]=nr;
            }*/
    } 
}

int main()
{
citire();
sol=0;
for (i=1;i<=n;i++)
    {
    for (j=1;j<=1 << 20;j++)
        v[j]=0;
    v[a[i]]=1;
    k=1;
    j=i+1;
    while (k<=max1&&j<=n)
          {
          v[a[j]]++;
          if (v[a[j]]==1) k++;
          if (k>=min1) sol++;
          j++;
          }
    }
fprintf(g,"%ld",sol);
fclose(f);
fclose(g);
return 0;
}