Cod sursa(job #1251246)

Utilizator LesterLazar Vlad Lester Data 29 octombrie 2014 09:45:39
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
using namespace std;
# define MAX 100002
int a[MAX],n,i,c[MAX]={1},j,subs[MAX],mx,ind;
ifstream fin("scmax.in");
ofstream fout("scmax.out");

int main()
{

    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>a[i];
        c[i]=1;
    }

    for(i=2;i<=n;i++)
    {
        mx=0;
        for(j=i-1;j>=1;j--)
        {
            if(a[j]<a[i] && c[j]>mx)
            mx=c[j];

        }
        c[i]=mx+1;

    }
    mx=1;
    for(i=1;i<=n;i++)
    {

        if(mx<c[i])
        {
        mx=c[i];
        ind=i;
        }

    }

    subs[mx]=a[ind];
    for(i=mx-1;i>=1;i--)
    {
        for(j=ind-1;j>=1;j--)
        {
            if(a[j]<a[ind] && c[j]==i)
            {
            subs[i]=a[j];
            ind=j;
            }
        }
    }
    fout<<mx<<endl;
    for(i=1;i<=mx;i++)
    {
        fout<<subs[i]<<" ";
    }


    return 0;
}