Pagini recente » Monitorul de evaluare | Cod sursa (job #1567991) | Cod sursa (job #2720444) | Cod sursa (job #2226677) | Cod sursa (job #1291726)
#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]] ) ;
}