Cod sursa(job #2346415)

Utilizator cosceexcosceex cosceex Data 17 februarie 2019 17:43:41
Problema Subsir crescator maximal Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>
#define dim 100001
using namespace std;

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

int n,v[dim],m[dim],p[dim];
int st,dr,mij,k,poz;

void afis(int poz)
{
    if(p[poz]!=0) afis(p[poz]);
    g<<v[poz]<<" ";
}

int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];
        m[1]=1;
    for(int i=1;i<=n;i++){
        st=1 , dr=k;
        while(st<=dr){
            mij=(st+dr)/2;
            if(v[i]>v[m[mij]])
                st=mij+1;
            else
                dr=mij-1;
        }
        m[st]=i;
        p[i]=m[st-1];
        if(st>k){
            k++;
            poz=i;
        }
    }

    g<<k<<"\n";

    afis(poz);
    /*
    g<<v[poz]<<" ";
    while(p[poz]!=0)
    {
        g<<v[p[poz]]<<" ";
        poz=p[poz];
    }*/

    return 0;
}