Cod sursa(job #60304)

Utilizator MARCELMIHALCEA MARICEL MARCEL Data 13 mai 2007 17:44:14
Problema Subsir 2 Scor 22
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb

#include<stdio.h>

#define minim( x , y )  ( x < y ? x : y )

#define Nmax 5001

int v[Nmax],a[Nmax],n;

int main()
{

int i,j,min,S,no;

freopen("subsir2.in","r",stdin);
freopen("subsir2.out","w",stdout);

scanf("%d",&n);

for(i=1;i<=n;i++)
 scanf("%d",v+i);

 a[n]=1;

 for(i=n-1;i;i--)
  {
  min=10001;
  a[i]=5001;

    for(j=i+1;j<=n;j++)
   {
   if( v[i] <= v[j] && v[j] < min )
      a[i] = minim( a[i], a[j]+1 ) ;
   if( v[j] >= v[i] ) min= minim(min,v[j]);
   }

  if( a[i] == 5001 ) a[i] = 1;

  }


  no=v[1],S=a[1];

  for(i=2;i<=n;i++)
   if ( v[i] <= no && a[i] < S )
      no = i , S = a[i];


  printf("%d\n",S);
  return 0;
  }