Cod sursa(job #2280039)

Utilizator Vladv01Vlad Vladut Vladv01 Data 10 noiembrie 2018 11:06:41
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;
fstream f("scmax.in");
fstream g("scmax.out");

int n,a[100002],e[100002],p[100002],k=1;
int main()
{
    f>>n;
    for(int i=0;i<n;i++)
        f>>a[i];
    e[0]=a[0];
    p[0]=1;
    for(int i=1;i<n;i++)
    {
        if(a[i]<=e[k-1])
        {   int j=k-1;
            while(a[i]<e[j])
                j--;
            e[j+1]=a[i];
            p[i]=p[j+1];
        }
        else
        {   k++;
            e[k-1]=a[i];
            p[i]=k;
        }
    }
    g<<k<<endl;
    int aux=k;
    k=0;
    for(int i=n-1;i>=0 && aux>0;i--)
        if(p[i]==aux)
        {
          e[k++]=a[i];
          aux--;
        }
    for(int i=k-1;i>=0;i--)
        g<<e[i]<<" ";
    return 0;
}