Pagini recente » Cod sursa (job #3255535) | Cod sursa (job #2408957) | Cod sursa (job #1215506) | Cod sursa (job #2481392) | Cod sursa (job #1221780)
#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;
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);
}
cout<<sol;
return 0;
}