Cod sursa(job #2298211)

Utilizator RAZVAN_NISTORNistor Razvan RAZVAN_NISTOR Data 7 decembrie 2018 18:43:34
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,lmax;
int a[101],lis[101];
void citire()
{
    int i;
    f>>n;
    for(i=1;i<=n;i++)
        f>>a[i];
}
void dinamica()
{
    int i,j;
    lis[n]=1;
    lmax=1;
    for(i=n-1;i>=1;i--)
    {
        for(j=i+1;j<=n;j++)
              if(a[i]<a[j])
                if(lis[i]<lis[j]+1)
                {
                lis[i]=lis[j]+1;
                if(lmax<lis[i])lmax=lis[i];
                }
    }
    g<<lmax<<"\n";
}
void LIS()
{
    int x=0;
    for(int i=1;i<=n;i++)
    {
        if(lis[i]==lmax&&a[i]>x)
        {
            g<<a[i]<<" ";
            x=a[i];
            lmax--;
        }
    }
}
int main()
{
    citire();
    dinamica();
    LIS();
    return 0;

}