Pagini recente » Cod sursa (job #3124501) | Cod sursa (job #1872470) | Cod sursa (job #2178645) | Cod sursa (job #1884664) | Cod sursa (job #899029)
Cod sursa(job #899029)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int N, i, j, S[100005], D[100005], TR[100005];
int main()
{
freopen("scmax.in", "r", stdin);
freopen("scmax.in", "w", stdout);
cin>>N;
for(i=1;i<=N;++i)
cin>>S[i];
D[N] = 1;
for(i=1;i<=N;++i)
D[i] = 1;
for(i=N;i>=2;--i)
for(j=i-1;j>=1;--j)
if(S[i] > S[j] && D[i] >= D[j])
D[j] = D[i] + 1, TR[j] = i;
int rez = *max_element(D, D + N);
cout<<rez<<"\n";
/*
for(i=1;i<=N;++i)
cout<<TR[i]<<" ";
cout<<endl;*/
bool fst = true;
for(i=1;i<=N;++i)
if(TR[i] > 0)
{
if(fst)
cout<<S[i]<<" ", fst = false;
cout<<S[TR[i]]<<" ";
i = TR[i]-1;
//cout<<i<<" "<<endl;
}
return 0;
}