Cod sursa(job #1043479)

Utilizator RomanDanRoman Dan Traian RomanDan Data 28 noiembrie 2013 17:38:07
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <fstream>

using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int x[100],lis[100],nr[100],i,j,n,k,sub[100],ll,maxx;
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
        cin>>x[i];
    lis[n]=1;
    for(i=n-1;i>=1;i--)
    {
        maxx=0;
        for(j=i+1;j<=n;j++)
            if(x[i]<x[j]&&lis[j]>maxx)
                maxx=lis[j];
        lis[i]=maxx+1;
    }
    maxx = 0;
    for(i=1;i<=n;i++)
        if(lis[i]>maxx)
            maxx=lis[i];
    cout<<maxx;
    cout<<"\n";
    for(i=1;i<=n;i++)
        if(lis[i]==maxx)
        {
            k=0;
            k++;
            sub[k]=x[i];
            ll=maxx;
            while(ll!=0)
            {
                for(j=i+1;j<=n;j++)
                    if(lis[j]==ll-1&&x[i]<=x[j])
                    {
                        k++;
                        sub[k]=x[i];
                        j=n;
                    }
                ll--;
            }
            for(i=1;i<=k;i++)
                cout<<sub[i]<<" ";
        }
}