Cod sursa(job #2447386)

Utilizator OanaLorenaOana Lorena OanaLorena Data 13 august 2019 11:26:38
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>
using namespace std;
#define N 100001
#define ull long long
ifstream f("scmax.in");
ofstream g("scmax.out");

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

int main()
{
    f >> n;
    ull 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;
        }
    }
    ull 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]<<' ';
}