Cod sursa(job #958028)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 6 iunie 2013 20:14:03
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int a[100002],n,v[100002],x[100002];
void read()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>a[i];
}
void calculate()
{
    int i,max=-1,poz=-1;
    for(i=n;i>=1;i--)
    {
        v[i]=0;
        for(int j=i+1;j<=n;j++)
            if(a[i]<a[j] && v[i]<v[j])
            {
                v[i]=v[j];
                x[i]=j;
            }
        v[i]++;
        if(max<v[i])
        {
            max=v[i];
            poz=i;
        }
    }
    g<<max<<"\n";
    for(i=poz;i!=0;i=x[i])
        g<<a[i]<<" ";
    g<<"\n";
}
int main()
{
    read();
    calculate();
    return 0;
}