Cod sursa(job #11450)

Utilizator devilkindSavin Tiberiu devilkind Data 31 ianuarie 2007 18:31:47
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 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",&k);
    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<=n;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;
}