Cod sursa(job #1978798)

Utilizator HumikoPostu Alexandru Humiko Data 8 mai 2017 20:28:45
Problema Subsir crescator maximal Scor 45
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>


using namespace std;

ifstream cin("scmax.in");
ofstream cout("scmax.out");

int main()
{int n, v[100001], dp[100001], lmax=1, p[100001], poz, k=1, solve[100001];

cin>>n;
for(int i=1;i<=n;++i)
    {cin>>v[i];
    dp[i]=1;}

for (int i=1;i<=n;++i)
{
     for (int j=1;j<=i;++j)
    {
        if(v[i]>v[j])
        {dp[i]=max(dp[i], dp[j]+1);
        p[i]=j;
        k++;
        }
}
}
for (int i=1;i<=n;++i)
{   if (lmax<=dp[i])
        {lmax=dp[i];
        poz=i;}
}


    cout<<lmax<<'\n';
for (int i=lmax;i>0;--i){
    solve[i]=v[poz];
    poz=p[poz];}
for(int i=1;i<=lmax;i++)
    cout<<solve[i]<<' ';

}