Pagini recente » Cod sursa (job #1423128) | Cod sursa (job #929031) | Cod sursa (job #1620350) | Cod sursa (job #2979517) | Cod sursa (job #1221790)
#include<fstream>
#include<algorithm>
using namespace std;
const int nmax = 5010;
ifstream cin("secv.in");
ofstream cout("secv.out");
int n,a[nmax],b[nmax],t[nmax],aux[nmax],sol=nmax;
int main()
{
cin>>n;
if (n==0) {cout<<"0"; return 0;}
for (int i=1;i<=n;i++) cin>>a[i],aux[i]=a[i];
sort(aux+1,aux+n+1);
aux[0]=-1;
int nrdis=0;
for (int i=1;i<=n;i++)
if (aux[i]!=aux[i-1]) ++nrdis;
for (int i=1;i<=n;i++)
t[i]=i,b[i]=1;
b[1]=1;
for (int i=2;i<=n;i++) {
for (int j=1;j<=i-1;j++)
if (a[i]>a[j])
if (b[j]+1>b[i] || (b[j]+1==b[i] && t[j]>t[i]))
b[i]=b[j]+1, t[i]=t[j];
if (b[i]==nrdis)
sol=min(sol,i-t[i]+1);
}
if (sol==nmax) cout<<"-1"; else
cout<<sol;
return 0;
}