Cod sursa(job #1570090)

Utilizator AndreiD31Dragan Andrei AndreiD31 Data 16 ianuarie 2016 10:49:17
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int a[100001],l[100001],n,max1,k;
void solve ()
{
    int i,j;
    l[n]=1;
    for(i=n-1; i>=1; i--)
    {
        max1=0;
        for(j=i+1; j<=n; j++)
            if(l[j]>max1&&a[i]<a[j])max1=l[j];
        l[i]=max1+1;
    }
    max1=0;
    for(i=1; i<=n; i++)
    {
        if(l[i]>max1)
        {
            max1=l[i];
            k=i;
        }
    }

}

void afis ()
{
    g<<max1<<'\n';
    for(int i=k; i<=n&&max1; i++)
    {
        if(l[i]==max1)
        {
            g<<a[i]<<" ";
            max1--;
        }

    }
}
int main()
{f>>n;
 for(int i=1;i<=n;i++)f>>a[i];
 solve();
 afis();

    return 0;
}