Cod sursa(job #2280028)

Utilizator Kappa_AlexAlexoi David Kappa_Alex Data 10 noiembrie 2018 11:05:03
Problema Subsir crescator maximal Scor 45
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin ("scmax.in") ;
ofstream fout ("scmax.out") ;

int main()
{
    int n , sir[100000] ;
    fin>>n ;
    for(int i=0 ; i<n ; i++)
        fin>>sir[i] ;
    int e[100000] , p[100000] , ma=0 ;
    p[0]=0 ;
    e[0]=sir[0] ;
    for(int i=1 ; i<n ; i++)
        if(e[ma]<sir[i])
        {
            ma++ ;
            p[i]=ma ;
            e[p[i]]=sir[i] ;
        }
        else
        {
            int k=ma ;
            while(sir[i]<=e[k])
                k-- ;
            k++ ;
            e[k]=sir[i] ;
            p[i]=k ;
        }
    fout<<ma+1<<"\n" ;
    for(int i=0 ; i<=ma ; i++)
        fout<<e[i]<<" " ;
    return 0;
}