Cod sursa(job #1333094)

Utilizator cremarencodianaCremarenco Diana cremarencodiana Data 2 februarie 2015 19:41:22
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>

using namespace std;
int a[100010],l[100010],max,m,i,n,j,poz;
int main()
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    scanf("%d\n",&n);
    for (i=1; i<=n; i++)
       scanf("%d",&a[i]);
    l[n]=1;
    for (i=n-1; i>=1; i--)
    {
        max=0;
        for (j=i+1; j<=n; j++)
           if (a[j]>a[i])
               if (l[j]>max) max=l[j];
        l[i]=max+1;
        if (l[i]>m) {m=l[i]; poz=i;}
    }

    printf("%d\n",m);
    while (m>0)
    {
        printf("%d ",a[poz]);
        i=poz;
        while (a[i]<=a[poz]) i++;
        poz=i; m--;
    }

    return 0;
}