Cod sursa(job #1291726)

Utilizator Burbon13Burbon13 Burbon13 Data 13 decembrie 2014 10:31:00
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <cstdio>

#define n_max 100001

using namespace std;

int n , v[n_max] , L[n_max] , mrm = 0  ;

void citire() ;
void dinamica() ;

int main()
{
    freopen( "scmax.in" , "r" , stdin ) ;
    freopen( "scmax.out" , "w" , stdout ) ;
    citire() ;
    dinamica() ;
    return 0;
}

void citire()
{
    scanf( "%d" , &n ) ;
    for ( int i = 1 ; i <= n ; i ++ )
        scanf( "%d" , &v[i] ) ;
}

void dinamica()
{
    L[1] = 1 ;
    mrm = 1 ;
    for ( int i = 2 ; i <= n ; i ++ )
    {
        if ( v[L[mrm]] > v[i] && v[L[mrm-1]] <v[i] )
            L[mrm] = i ;
        else if ( v[i] > v[L[mrm]])
        {
            mrm ++ ;
            L[mrm] = i ;
        }
    }
    printf( "%d\n" , mrm ) ;
    for ( int i = 1 ; i <= mrm ; i ++ )
        printf( "%d " , v[L[i]] ) ;
}