Cod sursa(job #2208240)

Utilizator georgitTreista Georgiana georgit Data 28 mai 2018 21:06:54
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#define N 100005

using namespace std;
int a[N],ex[N],maxi[N];
int main()
{
    ifstream f("scmax.in");
    ofstream g("scmax.out");
    int n;
    f>>n;
    for(int i=1;i<=n;i++)
        f>>a[i];
    maxi[n]=1;
    int poz=n,lmax=0;
    for(int i=n-1;i>=1;i--)
    {
        maxi[i]=1;
        for(int j=i+1;j<=n;j++)
            if(a[i]<a[j] and maxi[i]<maxi[j]+1)
            {
                maxi[i]=maxi[j]+1;
                ex[i]=j;
            }
        if(maxi[i]>lmax)
        {
            lmax=maxi[i];
            poz=i;
        }
    }
    g<<maxi[poz]<<"\n";
    while(poz)
    {
        g<<a[poz]<<" ";
        poz=ex[poz];
    }

    return 0;
}