Pagini recente » Cod sursa (job #1519365) | Cod sursa (job #266852) | Cod sursa (job #1764501) | Arhiva de probleme | Cod sursa (job #1864366)
#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=1;j<i;j++)
if(v[j] < v[i] && q[i] < q[j]+1)
{
q[i] = max(q[i], q[j]+1);
t[i] = j;
}
if(q[i] > maxim)
{
maxim = q[i];
ii = i;
}
}
out<<maxim+1<<'\n';
afisare(ii);
return 0;
}