Pagini recente » Cod sursa (job #1789441) | Cod sursa (job #1580369) | Cod sursa (job #1904855) | Cod sursa (job #1906389) | Cod sursa (job #2414315)
#include <bits/stdc++.h>
#define N 100005
using namespace std;
ifstream fin("scmax.in") ;
ofstream fout("scmax.out") ;
vector<int> graf[N] ;
int t[N] ;
int main()
{
int n , i , j , mx ;
fin >> n ;
for ( i = 1 ; i <= n ; i++ )
fin >> t[i] ;
t[0] = 0 ;
graf[0].push_back(0) ;
graf[1].push_back(t[1]) ;
mx = 1 ;
for ( i = 2 ; i <= n ; i++ )
{
for ( j = mx ; j >= 0 ; j-- )
{
if ( graf[j][0] < t[i] )
{
graf[j+1].push_back(t[i]) ;
if ( j == mx )
mx++ ;
if ( graf[j+1][0] > t[i] )
swap(graf[j+1][0],graf[j+1][graf[j+1].size()-1]) ;
break ;
}
}
}
fout << mx << '\n' ;
for ( i = 1 ; i <= mx ; i++ )
fout << graf[i][0] << " " ;
}