Cod sursa(job #679353)

Utilizator horeste12Stoianovici Horatiu Andrei horeste12 Data 13 februarie 2012 10:19:59
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
using namespace std;

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

int a[100001],n,pred[100001],x[100001],maxx,imax;

void citire()
{
    f>>n;
    for(int i=0;i<n;i++)
    {
        f>>a[i];
    }
    f.close();
}

void afis(int i)
{
    if(i==0)
        return;
    afis(pred[i]);
    g<<a[i]<<' ';
}
int main()
{
    citire();
    for(int i=0;i<n;i++)
    {
        for(int j=i-1;j>=0;j--)
        {
            if(a[j]<a[i]&&x[j]+1>x[i])
            {
                x[i]=x[j]+1;
                pred[i]=j;
            }
        }
        if(x[i]+1>maxx)
        {
            maxx=x[i]+1;
            imax=i;
        }
    }
    g<<maxx<<'\n';
    afis(imax);
    g<<'\n';
    g.close();
    return 0;
}