Cod sursa(job #1342095)

Utilizator ducu97Radu Seteanu ducu97 Data 13 februarie 2015 15:23:47
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
#define NMax 100001

using namespace std;

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

int v[NMax],T[NMax],A[NMax];

int main()
{
    int n,m,i,j,poz,maxim=0;

    in >> n;

    for(i = 1; i <= n; ++ i)
        in >> v[i];

    for(i = 1; i <= n; ++ i)
    {
        T[i] = 1;
        for(j = 1; j <= i-1; ++ j)
        {
            if(v[i]>v[j])
                T[i] = max(T[i], T[j]+1);
        }
    }
    for(i = 1; i <= n; ++ i)
        if(maxim<T[i])
        {
            maxim = T[i];
            poz = i;
        }
    out<<maxim<<endl;

    while(T[poz]!=1)
    {
        A[T[poz]]=v[poz];
        for(i = 1; i <= n; ++ i)
        {
            if(T[i]+1==T[poz] && v[i] < v[poz])
            {
                poz = i;
                break;
            }
        }
    }

    A[T[poz]]=v[poz];

    for(i = 1; i <= maxim; i ++)
        out<<A[i]<<" ";

    return 0;
}