Pagini recente » Cod sursa (job #991268) | Cod sursa (job #1164982) | Cod sursa (job #1979437) | Cod sursa (job #836795) | Cod sursa (job #483545)
Cod sursa(job #483545)
#include<fstream.h>
#include<list>
#define NMAX 5005
using namespace std;
long n,m,x[NMAX],l[NMAX],p[NMAX],MIN=NMAX;
list<long>a;
void cit()
{ifstream fin("secv.in");
fin>>n;
long i;
for(i=1;i<=n;++i)
{fin>>x[i];a.push_back(x[i]);}
a.sort();
a.unique();
m=a.size();
fin.close();
}
void solve()
{long i,j,max,k;
l[n]=1;
p[n]=n;
for(i=n-1;i>=1;--i)
{ max=0;
k=0;
for(j=i+1;j<=n;++j)
if(l[j]>max&&x[i]<x[j])
{max=l[j];
p[i]=p[j];
}
for(j=i+1;j<=n;++j)
if(l[j]==max&&p[i]>p[j])
p[i]=p[j];
if(max==0)
p[i]=i;
l[i]=max+1;
}
for(i=1;i<=n;++i)
if(l[i]==m&&p[i]-i+1<MIN)
MIN=p[i]-i+1;
}
void afis()
{ofstream fout("secv.out");
long i;
fout<<MIN<<'\n';
fout.close();
}
int main()
{cit();
solve();
afis();
return 0;
}