Cod sursa(job #1401712)

Utilizator mariakKapros Maria mariak Data 26 martie 2015 08:44:20
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>
#include <algorithm>
#define Nmax 100005

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

    return 0;
}