Cod sursa(job #543015)

Utilizator BMCBou Marian Catalin BMC Data 27 februarie 2011 13:57:21
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
//Bou Marian Catalin
#include<stdio.h>

int n, v[100003], val[100003], p[100003];

void afis(int a)
{
  if(a==0) return;
  afis(p[a]);
  printf("%d ",v[a]);

int main()
{
  int i,j, nr=0, max;
  freopen("scmax.in", "r", stdin);
  freopen("scmax.out", "w", stdout);
  scanf("%d", %n);
  for(i=1;i<=n;i++)
    scanf("%d",v+i);
  
  val[1]=1;
  p[1]=0;
  v[0]=0; val[0]=0;
  max=0;
  
  for(i=1;i<=n;i++)
  {
    for(j=i-1;j>0 && val[i]<val[j];--j);
    p[i]=j;
    val[i]=val[j]+1;
    if(val[max]<val[i])max=i;
  }
  
  printf("%d\n", val[max]);
  afis(max);
  printf("\n");
  
  return 0;
}