Cod sursa(job #1347884)

Utilizator ducu97Radu Seteanu ducu97 Data 19 februarie 2015 12:27:10
Problema Subsir crescator maximal Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define NMax 100010

using namespace std;

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

int v[NMax], t[NMax], p[NMax];

int main()
{
    int i, j, n, q, k = 0, maxim = 0;
    in >> n;
    in >> v[1];
    t[1] = 1;
    for(i = 2; i <= n; i ++)
    {
        in >> v[i];
        t[i] = 1;
        for(j = 1; j < i; j ++)
            if(v[j] < v[i])
                t[i] = max( t[i], t[j] + 1);

        if(maxim<t[i])
        {
            maxim = t[i];
            q = i;
        }
    }

    for(i = 1; i < n; i ++)
    {
        if(v[i] < v[i+1] && t[i] < t[i+1])
            v[t[i]]=v[i];
    }

    v[t[i]] = v[q];

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

    return 0;
}