Pagini recente » Monitorul de evaluare | Cod sursa (job #1276968) | Profil Alex1802 | Istoria paginii runda/make_lasm_great_again/clasament | Cod sursa (job #165057)
Cod sursa(job #165057)
#include <stdio.h>
#include <stdlib.h>
#define INF 2000000000
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,st,fin;
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);
m=1;
for(i=2;i<=n;i++)
if(w[i]!=w[m]) w[++m]=w[i];
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;
}