Pagini recente » Cod sursa (job #81877) | Cod sursa (job #2028716) | Cod sursa (job #2721859) | Cod sursa (job #860295) | Cod sursa (job #1118361)
#include <iostream>
#include <fstream>
#define N_MAX 100001
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int n, v[N_MAX], l[N_MAX], poz[N_MAX], m, prim;
void scmax()
{
l[n] = 0;
for(int i = n; i > 0; i--)
{
for(int j = 1; j < i; j++)
{
if(v[j] < v[i] && l[j] < l[i] + 1)
{
l[j] = l[i] + 1;
poz[j] = i;
}
}
if(m < l[i])
{
m = l[i];
prim = i;
}
}
}
void afisare(int nr)
{
out << v[nr] << " ";
if(poz[nr] != 0) afisare(poz[nr]);
}
int main()
{
in >> n;
for(int i = 1; i <= n; i++)
in >> v[i];
scmax();
out << m + 1<< '\n';
afisare(prim);
return 0;
}