Cod sursa(job #3209995)

Utilizator LORDENVraja Luca LORDEN Data 4 martie 2024 11:50:53
Problema Subsir crescator maximal Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
#include <algorithm>

using namespace std ;

ifstream cin ("scmax.in") ;
ofstream cout ("scmax.out") ;

int n, v[100002], dp[100002] ;

int main()
{

    cin >> n ;

    for (int i = 1 ; i <= n ; i ++)
        cin >> v[i] ;

    int idx = 1 ;
    dp[idx] = v[1] ;

    for (int i = 2 ; i <= n ; i ++)
    {

        if (v[i] > dp[idx])
            dp[++idx] = v[i] ;

        else
            *upper_bound(dp + 1, dp + idx + 1, v[i]) = v[i] ;

    }

    cout << idx << '\n' ;

    for (int i = 1 ; i <= idx ; i ++)
        cout << dp[i] << ' ' ;
    cout << '\n' ;

    return 0 ;

}