Cod sursa(job #318733)

Utilizator georgepalPal George Catalin georgepal Data 29 mai 2009 09:22:06
Problema Subsir 2 Scor 24
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>      
int main()      
    {      
    long long x[100003],a[100003],c[100003];      
    long long p,max,i,k,n;      
    FILE*f,*g;      
    f=fopen("subsir2.in","r");      
    g=fopen("subsir2.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;      
        }