Pagini recente » Cod sursa (job #895999) | Cod sursa (job #2719865) | Cod sursa (job #2818752) | Cod sursa (job #792423) | Cod sursa (job #1847581)
#include <cstdio>
#include <algorithm>
using namespace std;
struct test {
int nr,poz;
}a[5005];
int v[5005],lmin=5005;
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 p = 2;
for (j = i + 1; j <= n && p <= k; ++j){
if (v[j] == 1 && p == 2)
i = j;
if (v[j] == p)
++p;}
if (p > k)
lmin = min(lmin, j - i);}
if(lmin==5005)
lmin=-1;
printf("%d",lmin);
return 0;
}