Cod sursa(job #863412)

Utilizator lehman97Dimulescu David lehman97 Data 23 ianuarie 2013 19:53:43
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <stdio.h>

using namespace std;

FILE *f=fopen("scmax.in","r");
FILE *g=fopen("scmax.out","w");

int mxx,nr,i,n,a[100000],l[100000],mx,k,j,t[100000];

void drum(int k)
{
    i++;
    fprintf(g,"%d ",a[k]);
    if(i<mxx) drum(t[k]);
}

int main()
{
    mxx=0;
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++)
        fscanf(f,"%d",&a[i]);
    l[n]=1;
    int cj=0;
    for(i=n-1;i>=1;i--)
    {
        mx=0;
        for(j=i+1;j<=n;j++)
        if(l[j]>mx && a[j]>a[i]){mx=l[j];cj=j;};
        l[i]=mx+1;
        t[i]=cj;
        if(l[i]>mxx){mxx=l[i];k=i;}

    }
    fprintf(g,"%d\n",mxx);
    i=0;
    drum(k);
    fclose(g);
    return 0;
}