Cod sursa(job #209491)

Utilizator hasegandaniHasegan Daniel hasegandani Data 22 septembrie 2008 19:25:04
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<stdio.h>

#define max 100001

long a[max],lmax[max],ant[max];
FILE *f=fopen("scmax.in","r"),*g=fopen("scmax.out","w");

void printsir(long m)
{
     if (m!=0)
        {
        printsir(ant[m]);
	fprintf(g,"%ld ",a[m]);
	}
}

int main()
{
    long n,maxim=0;
    fscanf(f,"%ld",&n);
    for(long i=1;i<=n;++i)
    {
            fscanf(f,"%ld",&a[i]);
            for(long j=1;j<i;j++)
                    if ((a[j]<a[i])&&(lmax[j]>=lmax[i]))
                       {
                           lmax[i]=lmax[j]+1;
                           ant[i]=j;
		       }
	    if (lmax[maxim]<lmax[i])
               maxim=i;
    }
    fprintf(g,"%ld\n",lmax[maxim]+1);
    printsir(maxim);
    return 0;
}