Pagini recente » Cod sursa (job #2601894) | Cod sursa (job #269137) | Cod sursa (job #581084) | Cod sursa (job #1887563) | Cod sursa (job #2261311)
#include <fstream>
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
long long nr, v[100004], d[100004], last[100004];
long long poz, maxim;
void afis(long long nr)
{
if(nr == 0)
return;
afis(last[nr]);
cout << v[nr] << ' ';
}
int main()
{
cin >> nr;
for(int i=1; i <= nr; i++)
cin >> v[i];
for(int i=1; i <= nr; i++)
{
d[i] = 1;
for(int j=i-1; j > 0; j--)
{
if(v[j] < v[i] && d[j]+1 > d[i])
{
d[i] = d[j]+1;
last[i] = j;
}
}
}
for(int i=nr; i > 0; i--)
{
if(maxim < d[i])
{
maxim = d[i];
poz = i;
}
}
cout << d[poz] << '\n';
afis(poz);
}