Cod sursa(job #2068105)

Utilizator PTMAndreyAndrei PTMAndrey Data 17 noiembrie 2017 10:36:58
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
using namespace std;

int n,k,a[20],p[20],L[20];
fstream f("scmax.in");
ofstream g("scmax.out");
void citire()
{
    int i;
    f>>n;
    for(i=1;i<=n;i++)
        f>>a[i];
    f.close();
}
void init()
{
    L[n]=1;
    p[n]=n;
}
void p_dinamica()
{
    int i,j;
    for(i=n-1;i>=1;i--)
    {
        L[i]=1;
        p[i]=i;
        for(j=i+1;j<=n;j++)
            if(a[i]<a[j] && L[i]<L[j])
        {
            L[i]=L[j]+1;
            p[i]=j;
        }
    }
}
void cautare_solutie()
{
    int i,maxi=-1;
    for(i=1;i<=n;i++)
        if(maxi<L[i])
    {
        maxi=L[i];
        k=i;
    }
}
void afisare()
{
    int i,j;
    g<<"Lungime subsir= "<<L[k]<<endl;
    for(i=1,j=k;i<=L[k];i++,j=p[j])
    g<<a[j]<<" ";
}
int main()
{
    citire();
    init();
    p_dinamica();
    cautare_solutie();
    afisare();
}