Pagini recente » Cod sursa (job #834217) | Cod sursa (job #587508)
Cod sursa(job #587508)
#include <cstdio>
#include <cstdlib>
#include <string>
#define INF 10000
int cmp(const void *a, const void *b){
return (*(int*)a-*(int*)b);
}
int main(){
freopen("secv.in", "r", stdin);
freopen("secv.out", "w", stdout);
int N, S[5010], T[5010], i, j, k, aux, min;
scanf("%d", &N);
for(i=0; i<N; i++)
scanf("%d", S+i);
memcpy(T, S, sizeof(S));
qsort(T, N, sizeof(int), cmp);
j=0;
for(i=0; i<N; i++)
if(T[i]!=T[j])
T[++j]=T[i];
min=INF;
for(i=0; i<N; i++){
aux=0;
for(k=i; k<N; k++){
if(T[aux]==S[k])
aux++;
if(aux>j){
min=(k-i+1<min)? k-i+1: min;
break;
}
}
}
printf("%d\n", (min==INF)? -1: min);
return 0;
}