Pagini recente » Cod sursa (job #486903) | Cod sursa (job #2426641) | Cod sursa (job #2817473) | Cod sursa (job #1862888) | Cod sursa (job #1893457)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[100001], l[100001], p[100001], n, aux, lmax;
void afis(int aux) {
if(p[aux]!=0) {
afis(p[aux]);
fout<<v[aux]<<' ';
} else {
fout<<v[aux]<<' ';
}
}
int main()
{
fin>>n;
for (int i = 1; i <= n; i++) {
fin>>v[i];
}
for (int i = 2; i <= n; i++) {
for (int j = i -1; j >= 1; j--) {
if (v[j] < v[i] && l[j] >= l[i]) {
l[i] = l[j] + 1;
p[i] = j;
if (l[i] > lmax) {
lmax = l[i];
aux = i;
}
}
}
}
fout<<lmax + 1<<'\n';
afis(aux);
fin.close();
fout.close();
return 0;
}