Pagini recente » Cod sursa (job #1742472) | Cod sursa (job #2414657) | Cod sursa (job #2246712) | Cod sursa (job #2887803) | Cod sursa (job #2685458)
#include <iostream>
#include <fstream>
#define NMax 100001
using namespace std;
ifstream f("in.in");
ofstream g("out.out");
int N, Sir[NMax], Lmax[NMax], Prev[NMax], MAX = 1, I = 1;
void afis_subsir(int i)
{
if(Prev[i] != 0)
afis_subsir(Prev[i]);
g << Sir[i] << ' ';
}
int main()
{
f >> N;
f >> Sir[1];
Lmax[1] = 1;
Prev[1] = 0;
for(int i = 2; i <= N; i++)
{
f >> Sir[i];
Prev[i] = 0;
for(int j = 1; j < i; j++)
if(Sir[j] < Sir[i] && Lmax[j] > Lmax[i])
{
Lmax[i] = Lmax[j];
Prev[i] = j;
}
Lmax[i]++;
if(Lmax[i] > MAX)
{
MAX = Lmax[i];
I = i;
}
}
g << MAX << '\n';
afis_subsir(I);
return 0;
}