Pagini recente » Cod sursa (job #21685) | Cod sursa (job #454163) | Cod sursa (job #2639419) | Cod sursa (job #281909) | Cod sursa (job #2517528)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
long long v[100003];
int n;
int lmax[100003], urm[100003];
int main()
{
fin >> n;
for ( int i = 1 ; i <= n ; i++ )
fin >> v[i];
int u, nr;
for ( int i = n ; i >= 1 ; i-- )
{
u = -1;
nr = 0;
for ( int j = i + 1 ; j <= n ; j++ )
{
if ( v[i] < v[j] )
{
if ( nr < lmax[j] )
{
nr = lmax[j];
u = j;
}
}
}
urm[i] = u;
lmax[i] = nr + 1;
}
int mx = 0, p;
for ( int i = 1 ; i <= n ; i++ )
{
if ( mx < lmax[i] )
{
mx = lmax[i];
p = i;
}
}
fout << mx << endl;
for ( int i = 1 ; i <= mx ; i++ )
{
fout << v[p] << " ";
p = urm[p];
}
return 0;
}