Pagini recente » Cod sursa (job #252119) | Cod sursa (job #1010845) | Cod sursa (job #2695117) | Cod sursa (job #1025003) | Cod sursa (job #2904954)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
int v[100001], lg[100001], n, d[100001];
void afisare(int poz)
{
if(poz != 0)
{
afisare(d[poz]);
fout << v[poz] << " ";
}
}
int main()
{
fin >> n;
for(int i = 1; i <= n; i++)
fin >> v[i];
for(int i = 1; i <= n; i++)
{
lg[i] = 1;
for(int j = 1; j < i; j++)
{
if(lg[j] + 1 > lg[i] && v[i] > v[j])
{
lg[i] = lg[j] + 1;
d[i] = j;
}
}
}
int max = -1, poz;
for(int i = 1; i <= n; i++)
if(lg[i] > max)
{
max = lg[i];
poz = i;
}
fout << max << "\n";
afisare(poz);
return 0;
}