Cod sursa(job #1765892)

Utilizator nurof3nCioc Alex-Andrei nurof3n Data 27 septembrie 2016 08:58:03
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
const int MAXN=100001;
int a[MAXN],l[MAXN],p[MAXN],n,MAX=1,ind;
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>a[i];
    l[n]=1;p[n]=-1;
    for(int i=n-1;i>=1;i--)
    {
        l[i]=1;
        p[i]=-1;
        for(int j=i+1;j<=n;j++)
            if(a[i]<a[j] && l[j]+1>l[i])
            {
                l[i]=l[j]+1;
                p[i]=j;
            }
        if(l[i]>MAX)
        {
            ind=i;
            MAX=l[i];
        }
    }
    int i=ind;
    g<<MAX<<'\n';
    g<<a[ind]<<' ';
    while(p[i]!=-1)
    {
        g<<a[p[i]]<<' ';
        i=p[i];
    }
    return 0;
}