Cod sursa(job #1539488)

Utilizator EuEricCiordel Rromeo EuEric Data 30 noiembrie 2015 20:56:12
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<fstream>
#include<algorithm>
#include<cmath>
using namespace std;
int temp[100005],v[100005],vnou[100005],p[100005];
int main()
{
    ifstream cin("scmax.in");
    ofstream cout("scmax.out");
    int n,i,j,maxim=0,k;
    cin>>n;
    for(i=1;i<=n;++i)
    {
        cin>>v[i];
        temp[i]=1;
    }
    for(i=1;i<=n;++i)
        for(j=1;j<i;++j)
        {
            if(v[j]<v[i]){
                temp[i]=max(temp[i],temp[j]+1);
                if(temp[j]+1>=temp[i])
                    p[i]=j;
            }
        }
    for(i=1;i<=n;++i)
    {
        if(temp[i]>maxim)
        {
            maxim=temp[i];
            k=i;
        }
    }
    cout<<maxim<<endl;
    for(i=maxim;i>=1;--i)
    {
        vnou[i]=v[k];
        k=p[k];
    }
    for(i=1;i<=maxim;++i)
       cout<<vnou[i]<<" ";
}