Cod sursa(job #221454)

Utilizator georgepalPal George Catalin georgepal Data 16 noiembrie 2008 15:37:16
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<stdio.h>   
int main()   
    {   
    long long x[100000],a[100000],c[100000];   
    long long p,max,i,k,n;   
    FILE*f,*g;   
    f=fopen("scmax.in","r");   
    g=fopen("scmax.out","w");   
    fscanf(f,"%lld",&n);   
    for(i=1;i<=n;i++)   
        fscanf(f,"%lld",&x[i]);   
    max=1;p=n;c[n]=1;   
    for(k=n-1;k>0;k--)   
        {   
        c[k]=1;a[k]=0;   
        for(i=k+1;i<=n;++i)   
            if(x[i]>x[k])   
                if(c[i]+1>c[k])   
                {c[k]=c[i]+1;a[k]=i;}   
            if(c[k]>max)   
                {max=c[k];p=k;}   
        }   
    fprintf(g,"%lld\n%lld ",max,x[p]);   
    for(i=1;i<max;i++)   
         {p=a[p];   
         fprintf(g,"%lld ",x[p]);   
         }   
    fcloseall();   
    return 0;   
        }