Cod sursa(job #2447378)

Utilizator OanaLorenaOana Lorena OanaLorena Data 13 august 2019 10:43:41
Problema Subsir crescator maximal Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;
#define N 1005
ifstream f("scmax.in");
ofstream g("scmax.out");

int n, a[N], lung[N], v[N];

int main()
{
    f >> n;
    int i,j;
    for(i=1;i<=n;i++)
        f>>a[i];
    lung[n]=1;v[n]=-1;
    for(i=n-1;i>0;--i)
    {
        lung[i]=1;
        v[i]=-1;
        for(j=i+1;j<=n;j++)
            if(a[i]<a[j] && lung[i]<lung[j]+1)
        {
            lung[i]=lung[j]+1;
        v[i]=j;
        }
    }
    int pmax=1;
    for(i=1;i<=n;i++)
        if(lung[i]>lung[pmax])
        pmax=i;
    g<<lung[pmax]<<'\n';
    for(i=pmax;i!=-1;i=v[i])
        g<<a[i]<<' ';
}