Pagini recente » Cod sursa (job #193137) | Cod sursa (job #2438809) | Cod sursa (job #1819252) | Cod sursa (job #3277674) | Cod sursa (job #1665096)
#include <iostream>
#include <fstream>
using namespace std;
int v[100001], lung[100001], pred[100001];
ifstream in("scmax.in");
ofstream out("scmax.out");
void sir(int p)
{
if(pred[p]!=0)
sir(pred[p]);
out<<v[p]<<" ";
}
int main()
{
int n, pmax, i, j;
in >> n;
for(int i = 1; i <= n; i++)
in >> v[i];
lung[1] = 1;
pred[1] = 0;
pmax = 1;
for(int i = 2; i <= n; i++) {
lung[i] = 0;
for(int j = 1; j < i; j++)
if(v[j] < v[i])
if(lung[j] > lung[i])
{
lung[i] = lung[j];
pred[i] = j;
}
lung[i]++;
if(lung[i]>lung[pmax])
pmax = i;
}
out<<lung[pmax]<<endl;
sir(pmax);
return 0;
}