Cod sursa(job #1160612)

Utilizator DysKodeTurturica Razvan DysKode Data 30 martie 2014 17:48:27
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>
using namespace std;

ifstream fin("scmax.in");
ofstream fout("scmax.out");

int v[200],poz[200],lung[200],i,j,a,b,x,k,maxi,tot,n,toti;


void citire ()
{
    fin>>n;
    for(i=1 ; i<=n ; i++)
    {
        fin>>v[i];
        lung[i]=1;
    }
}

void rezolvare ()
{
    for(i=n ; i>=1 ; i--)
    {
        maxi=0;
        for(j=i ; j<=n ; j++)
        {
            if(v[i]<v[j])
                a=lung[j]+1;
            if(a>=maxi)
            {
                maxi=a;
                lung[i]=a;
                poz[i]=j;
            }
        }
    }
}

void total ()
{
    for(i=1 ; i<=n ; i++)
        if(lung[i]>toti)
        {
            toti=lung[i];
            tot=i;
        }
}

void afisare()
{
    i=tot;
    k=lung[i];
    for(j=1 ; j<=k+1; j++)
    {
        fout<<v[i]<<" ";
        i=poz[i];
    }
}

int main()
{
    citire();
    rezolvare();
    total();
    fout<<toti+1<<"\n";
    afisare();

fin.close();
fout.close();
return 0;
}