Cod sursa(job #3354895)

Utilizator Rizi_SanNen Ioana Madlena Rizi_San Data 21 mai 2026 09:27:42
Problema Subsir crescator maximal Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

const int NMAX = 1e5;

int n, v[NMAX+2];
int lung[NMAX+2], pmax, sol[NMAX+2], cnt;

int main()
{
    in>>n;
    for (int i=1; i<=n; i++)
    {

        in>>v[i];
    }

    for (int i=1; i<=n; i++)
    {
        int lung_i = 0;

        for (int j=1; j<i; j++)
        {
            if (v[j]<v[i])
            {
                if (lung[j]>lung_i)
                {
                    lung_i = lung[j];
                }
            }
        }
        lung[i] = lung_i + 1;
     //lung_pmax = max(lung_pmax, lung[i]);
        if (lung[i] > lung[pmax])
        {
            pmax = i;
        }
    }

    //out<<lung[pmax]<<endl;
    for (int i=n; i>=1; i--)
    {
        if (lung[pmax] == lung[i])
        {
            cnt++;
            sol[cnt] = v[i];
            lung[pmax]--;
        }
    }
    out<<cnt<<"\n";
    for (int i=cnt; i>=1; i--)
    {
        out<<sol[i]<<" ";
    }
    return 0;
}