Cod sursa(job #1534421)

Utilizator NightSilentIridon Stefan NightSilent Data 23 noiembrie 2015 18:37:11
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int main()
{

    long n,a[100001],l[100001],i,maxi,pmax,j;
    f>>n;
    for(i=1;i<=n;i++)
      f>>a[i];
    l[n]=1;
    for(i=n-1;i>=1;i--)
    {
        maxi=0;
        for(j=i+1;j<=n;j++)
          if(l[j]>maxi&&a[j]>a[i]) maxi=l[j];
        l[i]=1+maxi;
    }
    maxi=0;
    for(i=1;i<=n;i++)
    {
        if(l[i]>maxi)
        {
            maxi=l[i];
            pmax=i;
        }
    }
    g<<maxi<<'\n';
    while(maxi>0)
    {
        g<<a[pmax]<<' ';
        maxi--;
        for(i=pmax+1;i<=n;i++)
        if(a[i]>a[pmax]&&l[i]==maxi) {pmax=i;break;}
    }
    return 0;
}