Cod sursa(job #1237904)

Utilizator PTAdrian64Pop-Tifrea Adrian PTAdrian64 Data 5 octombrie 2014 08:51:45
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>
#define nmax 100000
#define mval 2000000000

using namespace std;

long a[nmax],father[nmax],length[nmax];
int lm;
int n,tr;

void btr(int i){
   if(i>0){
      btr(father[i]);
      printf("%d ",a[i]);
   }
}

int main(void)
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    scanf("%d",&n);
    int i=1,j;

    while(i<=n){
        scanf("%ld",&a[i]);
           j=0;
        for(j;j<i;j++)
            if(length[i]<length[j]+1 && a[j]<a[i]){
                  length[i]=length[j]+1;
                  father[i]=j;
            }

      if(length[i]>lm)
        {lm=length[i];
          tr=i;
        }
      i++;
    }

    printf("%d\n",lm);
    btr(tr);
}