Pagini recente » Cod sursa (job #1968741) | Cod sursa (job #2833078) | Cod sursa (job #1167470) | Cod sursa (job #1719611) | Cod sursa (job #1864335)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int N;
int v[100000], q[100000], t[100000];
void afisare(int ii)
{
if(t[ii] > 0)
afisare(t[ii]);
out<<v[ii]<<' ';
}
int main()
{
in>>N;
int ii = 0;
int maxim = -1000;
for(int i=1;i<=N;i++)
{
in>>v[i];
for(int j=0;j<i;j++)
if(v[j] < v[i])
{
q[i] = max(q[i], q[j]+1);
t[i] = j;
}
if(q[i] > maxim)
{
maxim = q[i];
ii = i;
}
}
out<<q[ii] + 1<<'\n';
afisare(ii);
return 0;
}