Pagini recente » Cod sursa (job #938549) | Cod sursa (job #164942) | Cod sursa (job #2378204) | Cod sursa (job #1617951) | Cod sursa (job #2210214)
#include <bits/stdc++.h>
#define lim 100005
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, pos, k, maxim;
int v[lim], dp[lim], p[lim], solve[lim];
int main()
{
maxim = 1;
k = 1;
fin>>n;
for( int i = 1; i <= n; ++i )
{
fin>>v[i];
dp[i] = 1;
}
for ( int i = 1; i <= n; ++i )
{
for ( int j = 1; j <= i; ++j )
{
if( v[i] > v[j] )
{
if ( dp[i] < dp[j]+1 )
{
dp[i] = dp[j]+1;
p[i] = j;
}
k++;
}
}
}
for ( int i = 1; i <= n; ++i )
{
if ( maxim <= dp[i] )
{
maxim = dp[i];
pos = i;
}
}
fout<<maxim<<'\n';
for ( int i = maxim; i > 0; --i )
{
solve[i] = v[pos];
pos = p[pos];
}
for( int i = 1; i <= maxim; i++ )
fout<<solve[i]<<' ';
}