Pagini recente » Cod sursa (job #959052) | Cod sursa (job #2241020) | Cod sursa (job #1741096) | Cod sursa (job #1892722) | Cod sursa (job #2369422)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[100001], w[100001], o[100001];
int main()
{
int n, i, maxx, j=0, maxim=0, poz, a;
fin >> n;
for(i=1; i<=n; i++)
{
fin >> v[i];
maxx=0;
for(j=1; j<i; j++)
if(v[j]<v[i] && w[j]>maxx) maxx=w[j];
w[i]=maxx+1;
if(w[i]>maxim){maxim=w[i]; poz=i;}
}
fout << maxim << "\n";
a=v[poz]; i=1; o[i]=v[poz]; poz--; maxim--;
while(maxim)
{
if(v[poz]<a && w[poz]==maxim)
{
maxim--;
a=v[poz];
i++;
o[i]=v[poz];
}
poz--;
}
while(i)
{
fout << o[i] << " ";
i--;
}
return 0;
}