Cod sursa(job #900121)

Utilizator pufarinRudolf Pufarin Posirca pufarin Data 28 februarie 2013 17:46:31
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;
ofstream out("scmax.out");
int pred[1000000],a[1000000],v[1000000],n,imax;

void citire()
{
    int i;
    ifstream in("scmax.in");
    in>>n;
    for(i=0;i<n;i++)
    in>>a[i];
    in.close();
}
void reconstitue(int i)
{

    if(pred[i]+1) reconstitue(pred[i]);
    out<<a[i]<<" ";
}
void prelucreaza()
{
    int i,j;
    v[0]=1;
    imax=0;
    pred[0]=-1;
    for(i=1;i<n;i++)
    {

        v[i]=1;
        pred[i]=-1;
        for(j=0;j<i;j++)
        if(a[j]<a[i] && v[j]+1>v[i])
        {
            v[i]=v[j]+1;
            pred[i]=j;

        }
        if(v[i]>v[imax])imax=i;
}
}
void scrie()
{
    out<<v[imax]<<endl;

    reconstitue(imax);

}
int main()
{

    citire();
    prelucreaza();
    scrie();
    return 0;
}