Cod sursa(job #2027226)

Utilizator octavian.sndOctavian Sandu octavian.snd Data 25 septembrie 2017 19:54:03
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
const int maxN=100005;
int n,k,maxim,maxA,start,aux,V[maxN],A[maxN],B[maxN],X[maxN],cnt;

int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        {
        f>>V[i];
        aux=V[i];
        k=1;
        while(aux>B[k] && k<=maxim) k++;
        B[k]=aux;
        A[i]=k;
        if(k>maxA) {maxA=k; start=i;}
        maxim=max(maxim,k);
        }
    g<<maxim<<'\n';
    while(A[start]>=1)
    {
        X[++cnt]=V[start];
        if(A[start]==1) break;
        int i=start;
        while(A[i]>=1 && A[i]!=A[start]-1) i--;
        start=i;
    }
    for(int i=cnt;i>=1;i--) g<<X[i]<<" ";
    return 0;
}