Cod sursa(job #670063)

Utilizator catalin_olariOlari Catalin Georgel catalin_olari Data 28 ianuarie 2012 11:47:24
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include<stdio.h>
int main()
{
    int v[10],l[10],i,j,n,max;
    FILE *f=fopen("scmax.in","rt");
    FILE *g=fopen("scmax.out","wt");
    fscanf(f,"%i",&n);
    for(i=0;i<n;i++)
        fscanf(f,"%i",&v[i]);
    l[n-1]=1;                               //de la ultimul element se poate forma un sir de lungime 1
    for(i=n-2;i>=0;i--)
    {
        max=0;
        for(j=i+1;j<n;j++)                   //calculam pt fiecare nr scmax care se poate forma de la el
            if(v[j]>v[i] && l[j]>max)
                max=l[j];
        l[i]=max + 1;
    }
    max=l[0];
    int inc=0;
    for(i=1;i<n;i++)
        if(l[i]>max)
        {
            max=l[i];
            inc=i;
        }
    fprintf(g,"%i\n%i ",max,v[inc]);

    for(i=inc+1;i<n;i++)
        if(v[i]>v[inc]&&l[i]==max-1)
            {
                fprintf(g,"%i ",v[i]);
                max--;
            }
    return 0;
}