Pagini recente » Cod sursa (job #1684985) | Cod sursa (job #3171346) | Cod sursa (job #1785239) | Cod sursa (job #1141656) | Cod sursa (job #176566)
Cod sursa(job #176566)
#include <cstdio>
int a[5005],b[5005],c[5005],n,m,l,sw;
void qsort(int ls,int ld){
int i=ls,j=ld,x=b[(ls+ld)/2];
do {while (b[i]<x) i++;
while (b[j]>x) j--;
if (i<=j) {int aux=b[i];
b[i]=b[j];
b[j]=aux;
i++;j--;}
}while (i<=j);
if (i<ld) qsort(i,ld);
if (j>ls) qsort(ls,j);
}
int main(){
int i,j,k;
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i) {scanf("%d",&a[i]);
b[i]=a[i];}
qsort(1,n);m=0;c[0]=-1;
for (i=1;i<=n;++i)
if (b[i]!=c[m]) c[++m]=b[i];
l=5005;
for (i=1;i<=n-m+1;++i)
if (a[i]==c[1]){
k=2;
for (j=i+1;j<=n && k<=m;++j)
if (a[j]==c[k]) ++k;
if (k==m+1){
sw=1;
if (j-i<l) l=j-i;}
}
if (!sw) l=-1;
printf("%d",l);
return 0;
}