Pagini recente » Cod sursa (job #2490512) | Cod sursa (job #2433305) | Cod sursa (job #620734) | Cod sursa (job #2427613) | Cod sursa (job #72282)
Cod sursa(job #72282)
#include<stdio.h>
#include<stdlib.h>
#define N 10000
int n,v[N],c[N],s[N],k;
void read()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
}
void afis(int v[N],int n)
{
int i;
for(i=1;i<=n;i++)
printf("%d ",v[i]);
printf("\n");
}
int exist(int x)
{
int i;
for(i=0;i<k;i++)
if(c[i]==x)
return 1;
return 0;
}
int maxim(const void *a,const void *b)
{
return *(int*)a-*(int*)b;
}
void reconstruct()
{
int i;
c[k++]=v[1];
for(i=2;i<=n;i++)
if(!exist(v[i]))
c[k++]=v[i];
qsort(c,k,sizeof(c[0]),maxim);
}
void init(int s[N])
{
int i;
for(i=1;i<=k;i++)
s[i]=0;
}
int all()
{
int i;
for(i=1;i<=k;i++)
if(s[i]==0)
return 0;
return 1;
}
void solve()
{
int i,poz,min=N,nr=0;
reconstruct();
//afis(c,k);
for(poz=1;poz<=n;poz++)
if(v[poz]==c[0])
{
init(s);
nr=0;
for(i=poz;i<=n;i++)
{
s[v[i]]=1;
nr++;
if(all()&&nr<min)
min=nr;
}
}
printf("%d\n",min);
}
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
read();
solve();
return 0;
}