Pagini recente » Cod sursa (job #2132248) | Cod sursa (job #2408010) | Cod sursa (job #57573) | Cod sursa (job #875490) | Cod sursa (job #3172461)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
/**
8
2 1 3 2 1 3 4 5
p
c= 1 2 3 4 5
*/
int n,a[5005],b[5005],c[5005],m;
///ret lungimea min a secventei care incepe cu a[p] si contine pe c
int minlen(int p)
{
int i,j=1;
for(i=p;i<=n;i++)
{
if(a[i]==c[j]) j++;
if(j>m) return i-p+1;
}
return -1;
}
int main()
{
int i,ans=1e9,k;
fin>>n;
for(i=1;i<=n;i++)
{
fin>>a[i];
b[i]=a[i];
}
sort(b+1,b+n+1);
c[++m]=b[1];
for(i=2;i<=n;i++)
if(b[i]!=c[m]) c[++m]=b[i];
for(i=1;i<=n;i++)
{
k=minlen(i);
if(k!=-1 && k<ans) ans=k;
}
if(ans==1e9) ans=-1;
fout<<ans;
return 0;
}