Cod sursa(job #2042206)

Utilizator ale.sicobeanAlexandra Sicobean ale.sicobean Data 18 octombrie 2017 10:38:30
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <stack>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
stack <int> s;
int v[100005],a[100005];


int main()
{
    int n,i,j,maxx=0;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
    }
    a[1]=1;
    for(i=2;i<=n;i++)
    {
        for(j=i-1;j>=1;j--)
        {
            if(v[i]>v[j] && a[j]>a[i])
            {
              a[i]=a[j];
            }

        }
           a[i]++;
           if(maxx<a[i])
            maxx=a[i];
    }
    fout<<maxx<<'\n';
    int cn=n;
    int cm=maxx;
        while(cn!=0)
    {
        if(a[cn]==cm)
        {
           cm--;
           s.push(v[cn]);
        }
        cn--;
    }

    while(!s.empty())
    {
        fout<<s.top()<<" ";
        s.pop();
    }
    return 0;
}