Cod sursa(job #483545)

Utilizator cosmyoPaunel Cosmin cosmyo Data 9 septembrie 2010 02:50:03
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#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;
}