Cod sursa(job #1610858)

Utilizator Cezar_MihalceaCezar Mihalcea Cezar_Mihalcea Data 23 februarie 2016 19:38:52
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<fstream>
using namespace std;

ifstream f("scmax.in");
ofstream g("scmax.out");

int v[100001],sol[100001],pred[100001],n;

int maxim(int a, int b)
{
    if(a>b)
        return a;
    return b;
}

int calc()
{
    int i,j,maxx=1;
    sol[1]=1;
    for(i=2;i<=n;i++)
    {
        sol[i]=0;
        for(j=1;j<i;j++)
            if(v[j]<v[i])
                if(sol[j]>sol[i])
                {
                    sol[i]=sol[j];
                    pred[i]=j;
                }
        sol[i]++;
        if(sol[i]>sol[maxx])
            maxx=i;
    }
    return maxx;
}

void afis(int i)
{
    if(pred[i])
        afis(pred[i]);
    g<<v[i]<<" ";
}

int main()
{
    int i,poz;
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    poz=calc();
    g<<sol[poz]<<"\n";
    afis(poz);
    return 0;
}