Cod sursa(job #1483118)

Utilizator tqmiSzasz Tamas tqmi Data 8 septembrie 2015 18:45:50
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <fstream>

using namespace std;

ifstream fin("scmax.in");
ofstream fout("scmax.out");

const int NMax = 100005;
int N;
int L[NMax],X[NMax],Succ[NMax];

int main()
{
    int Max = 0,PMax;

    fin>>N;

    for(int i = 1; i <= N; ++i)
        {
            fin>>X[i];
        }

    for(int i = N; i >= 1; --i)
        {
           for(int j = i+1; j <= N; j++)
                if( X[i] < X[j] )
                    {
                        if(L[i]<L[j])
                        {
                            L[i] = L[j];
                            Succ[i] = j;
                        }

                    }
                L[i]++;

        }

    for(int i = 1; i <= N; ++i)
        if(L[i]>Max)
        {
            Max = L[i];
            PMax = i;
        }

    fout << Max << "\n";

    int i = PMax;

    while(i)
        {
            fout<<X[i]<<" ";
            i = Succ[i];
        }

    fout<<"\n";

    return 0;
}