Pagini recente » Cod sursa (job #1780512) | Cod sursa (job #1449947) | Cod sursa (job #1112655) | Cod sursa (job #2534244) | Cod sursa (job #1109899)
#include <iostream>
#include <fstream>
#define N_MAX 100001
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
long long int v[N_MAX], n, l[N_MAX], lmax, pre[N_MAX], pos;
void sol(int pos)
{
if(pre[pos] >= 0) sol(pre[pos]);
out << v[pos] << " ";
}
int main()
{
in >> n;
for(int i = 0; i < n; i++)
{
in >> v[i];
l[i] = 1;
}
l[1] = 1;
pre[1] = -1;
pre[0] = -1;
for(int i = 1; i < n; i++)
{
for(int j = 0; j < i; j++)
{
if(v[i] > v[j] && l[i] <= l[j])
{
l[i] = l[j] + 1;
pre[i] = j;
}
else l[i] = 1;
if(l[i] > lmax){ lmax = l[i]; pos = i; }
}
}
out << lmax << '\n';
sol(pos);
return 0;
}