Cod sursa(job #316843)

Utilizator raica_cristiraica dumitru cristian raica_cristi Data 21 mai 2009 12:56:53
Problema Subsir crescator maximal Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<stdio.h>

#define dim 30000
int a[dim],e[dim],poz[dim],n,o,i,max,k;

void afis(int o)
{
 if(o)
 afis(poz[o]),
 printf("%d ",a[o]);
}
void read()
{
 scanf("%d",&n);
 int i;
 for(i=1;i<=n;i++)
 scanf("%d",&a[i]);
}
void solve()
{
 for(i=1;i<=n;i++)
 {
   max=0;
  for(k=i-1;k>=1;k--)
  {
   if(a[k]<a[i] && e[k] > max)
   max=e[k],o=k;
 }
 e[i]=max+1;
 poz[i]=o;
}
 max=0;

 for(i=1;i<=n;i++)
 if(max<=e[i])
 max=e[i],o=i;
 printf("%d\n",max);
 afis(o);
// for(max;max>=1;o=poz[o] ,max-- )
// printf("%d ",a[o]);
 

}
int main ()
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    read();
    solve();
   return 0;
  }