Cod sursa(job #1075073)

Utilizator andru47Stefanescu Andru andru47 Data 8 ianuarie 2014 16:30:39
Problema Subsir crescator maximal Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <cstring>
using namespace std;
int n,i,maxy,v[100001],j,maxyy,pozz,poz;
int a[100001];
bool OK;
int main()
{
    ifstream f("scmax.in");
    ofstream g("scmax.out");
    f >>n;
    for (i=1;i<=n;i++)
    {
        f >> a[i];
    }
    v[n]=1;
    for (i=n-1;i>=1;i--)
    {
        maxy=0;
        for (j=i+1;j<=n;j++)
        {
            if (v[j]>maxy&&a[j]>a[i])maxy=v[j];
        }
        v[i]=maxy+1;
    }
    for (i=1;i<=n;i++)
    {
        if (v[i]>maxyy){maxyy=v[i];poz=i;}
    }
    g << v[poz] << '\n';
   while (poz<=n)
   {
        maxy=0;OK=false;
        for (j=poz+1;j<=n;j++)
        {
            if (v[j]==v[poz]-1&&a[j]>a[poz]){pozz=j;OK=true;break;}
        }
        g << a[poz] << " ";
        if (OK==true)poz=pozz;
        else poz++;
   }

    return 0;
}