Cod sursa(job #358703)

Utilizator edy_3dzEdy 3dz edy_3dz Data 24 octombrie 2009 10:23:28
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>

using namespace std;

ofstream fout("scmax.out");

int i,n;
int *a,*l,*t;

void afish(int);

int main()
{
    ifstream f("scmax.in");
    //int a[21],l[21],t[21];
    f>>n;
    a=new int[n];
    l=new int[n];
    t=new int[n];
    for (i=1;i<=n;i++)
     f>>a[i];
    f.close();
    l[1]=1;
    t[1]=0;
    int max=1,j,g=1;
    for(i=2;i<=n;i++)
    {
        int maxim=0,k=0;
        for(j=1;j<i;j++)
        {
            if(a[j]<a[i]&&l[j]>maxim) { k=j;maxim=l[k];}
        }
        if(k) { l[i]=l[k]+1; t[i]=k;}
            else { l[i]=1;t[i]=0;}
    }
    for(i=1;i<=n;i++)
    {
        if(l[i]>max) { max=l[i];g=i;}
    }
 /*   while(g)
    {
        cout<<a[g]<<" ";
        g=t[g];
    }*/
    afish(g);
    return 0;
}

void afish(int k)
{
    if(k)
    {
        afish(t[k]);
        fout<<a[k]<<" ";
    }
}