Cod sursa(job #1572749)

Utilizator mihai9913Blaga Mihai mihai9913 Data 19 ianuarie 2016 08:49:28
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, start, v[100001], k[100001], p[100001], x[100001];
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
    }

    for(int i=1;i<=n;i++)
    {   k[i]=1;
        for(int j=i-1;j>=1;j--)
            if(v[j]<v[i] && k[j]>=k[i])
                {
                    k[i]=k[j]+1;
                    p[i]=j;
                    if(k[i]>k[start])
                        start=i;
                }
    }
    n=k[start];
    fout<<k[start]<<endl;
    int i=0;
    while(k[start]!=0)
    {
        x[++i]=v[start];
        start=p[start];
    }
    for(int i=n;i>=1;i-- )
    fout<<x[i]<<" ";
    return 0;
}