Cod sursa(job #1244770)

Utilizator BaltaretuAndreiBaltaretu Andrei BaltaretuAndrei Data 18 octombrie 2014 09:15:15
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;

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

int sol[100001],i,n,a[100001];

void cit()
{
    int i;
    f>>n;
    for(i=1;i<=n;i++)
    f>>a[i];
}

void dinam(int i)
{
    if(i>0)
    {
    int j=i+1;
    while(j<=n)
    {
        if(a[i]<a[j])
        {
            sol[i]=sol[j];
            j=n+1;
        }
        j++;
    }
    sol[i]++;
    dinam(i-1);
    }
}

void afis()
{
    int i,m=1;
    for(i=2;i<=n;i++)
    if(sol[i]>sol[m])
    m=i;
    g<<sol[m]<<endl;
    g<<a[m]<<" ";
    for(i=1;i<=n;i++)
    if(a[i]>a[m] && sol[i]+1==sol[m])
    {
        g<<a[i]<<" ";
        m=i;
    }
}

int main()
{
    cit();
    dinam(n);
    afis();
    return 0;
}