Cod sursa(job #2675639)

Utilizator cristiana.cocheciCocheci Cristiana cristiana.cocheci Data 22 noiembrie 2020 10:51:23
Problema Subsir crescator maximal Scor 70
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <stdio.h>
#include <stdlib.h>
#define N 100000
int v[N],l[N],n;

void subsir(int p)
{
    int i=p-1;
    while(i>=0 && (v[i]>=v[p] || l[i]!= l[p]-1))
    {
        i--;
    }
    if(i>=0)
    {
        subsir(i);
    }
    printf("%d ",v[p]);
    return;
}

int main()
{
    int lc,j,imax=0,i;
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&v[i]);
    }
    l[0]=1;
    for(i=1;i<n;i++)
    {
        l[i]=0;
        lc=0;
        for(j=0;j<i;j++)
        {
            if(v[j]<v[i])
            {
                if(l[j]>lc)
                {
                    lc=l[j];
                }
            }
        }
        l[i]=1+lc;
        if(l[i]>l[imax])
        {
            imax=i;
        }
    }
    printf("%d\n",l[imax]);
    subsir(imax);
    return 0;
}