Cod sursa(job #1778252)

Utilizator SanduStefaniaSandu Stefania Iulia SanduStefania Data 13 octombrie 2016 17:25:31
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>

using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,a[100001],l[100001],ant,val,vmax,i,poz=1;//,ram;
void citire()
{
    f>>n;
    for (i=1;i<=n;i++)
    {
        f>>a[i];
        l[i]=0;
    }
}
int ss(int x)
{
    int i,maxim=0;
    for (i=x+1;i<=n;i++) if (a[x]<a[i]) if (l[i]>maxim) maxim=l[i];
    return maxim;
}
void afisare (int val)
{
    int i;
    if (val>0)
    {
        for (i=poz;i<=n;i++) if (l[i]==val)
        {
            g<<a[i]<<" ";
            poz=i;
            val--,afisare(val);
            break;
        }
    }
    else return;
}

void scm()
{
    int i,vmax=-1;
    l[n]=1;
    for (i=n-1;i>=1;i--)
    {
        l[i]=ss(i)+1;
        if (l[i]>vmax)vmax=l[i];
    }
    //ram=vmax;
    g<<vmax<<'\n';
    afisare(vmax);
}
int main()
{
    citire();
    scm();

    return 0;
}