Pagini recente » Cod sursa (job #2178713) | Cod sursa (job #784876) | Cod sursa (job #2487714) | Monitorul de evaluare | Cod sursa (job #165031)
Cod sursa(job #165031)
#include <stdio.h>
#include <stdlib.h>
#define INF 5005
int comp(const void*a,const void*b){
int *aa=(int*)a,*bb=(int*)b;
int aaa=*aa,bbb=*bb;
if(aaa<bbb) return -1;
if(aaa>bbb) return 1;
return 0;
}
int main(){
int n,v[5005],w[5005]={0},i,j,k=0,m=0,ok,l=INF;
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&v[i]);
w[i]=v[i];
}
qsort(w,n+1,sizeof(w[0]),comp);
for(i=1;i<=n;i++)
if(w[i]!=w[m]) w[++m]=w[i];
for(i=m+1;i<=n;i++)
w[i]=0;
for(i=1;i<=n;i++)
if(v[i]==w[1]){
ok=0;
k=2;
for(j=i+1;j<=n;j++){
if(v[j]==w[k])
k++;
if(k==m+1) { ok=1; break; }
}
if(ok && j-i+1<l)
l=j-i+1;
}
if(m==1) { printf("1"); return 0; }
if(l!=INF) printf("%d",l);
else printf("-1");
return 0;
}