Pagini recente » Cod sursa (job #1497273) | Cod sursa (job #260698) | Cod sursa (job #1962565) | Cod sursa (job #1768754) | Cod sursa (job #1581757)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n , a[100001], i , j , imax , amax;
int pred[100001] , v[100001] ;
void preluc ( int i )
{
if ( pred[i] + 1 ) preluc( pred[i] );
g << a[i] << " " ;
}
int main()
{
f >> n ;
for ( i = 1; i <= n ; i++ ) f >> a[i];
pred[1] = -1;
v[1] = 1;
for ( i = 2; i <= n ; i++ )
{
pred[i] = -1;
v[i] = 1;
for ( j = 1 ; j < i; j++ )
{
if ( a[j] < a[i] and v[j] + 1 > v[i] )
{
v[i] = v[j] + 1;
pred[i] = j;
}
}
if ( amax < v[i] ) amax = v[i] , imax = i;
}
g << v[imax] << "\n";
preluc(imax);
return 0;
}