Pagini recente » Cod sursa (job #2613708) | Cod sursa (job #2744675) | Cod sursa (job #2989416) | Cod sursa (job #2627636) | Cod sursa (job #1847563)
#include <cstdio>
#include <algorithm>
using namespace std;
struct test {
int nr,poz;
}a[5005];
int v[5005],lmin=2000000000;
bool Comp(test a, test b) {
return a.nr<b.nr;}
int main() {
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
int n,i,j;
scanf("%d",&n);
for(int i=1;i<=n;i++) {
scanf("%d",&a[i].nr);
a[i].poz=i;}
sort(a+1,a+1+n,Comp);
int k=0;
a[0].nr=-1;
for(int i=1;i<=n;i++) {
if(a[i-1].nr!=a[i].nr)
k++;
v[i]=k;}
for(i=1;i<=n;i++) {
if(v[i]==1) {
int po=2;
for(j=i+1;j<=n && po<=k;j++) {
if(v[j]==po)
po++;}
if(po>k) {
lmin=min(lmin,j-i);}}}
if(lmin==2000000000)
lmin=-1;
printf("%d",lmin);
return 0;
}