Pagini recente » Cod sursa (job #1271760) | Cod sursa (job #284893) | Cod sursa (job #1246048) | Cod sursa (job #884340) | Cod sursa (job #2076009)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
vector<int>q;
int n,v[100005],dp[100005],sl;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<=n;i++)
for(int j=0;j<i;j++)
if(v[i]>v[j])
dp[i]=max(dp[i],dp[j]+1);
for(int i=1;i<=n;i++)
sl=max(sl,dp[i]);
cout<<sl<<"\n";
int dr;
for(int i=1;i<=n;i++)
if(dp[i]==sl)
{
dr=i;
break;
}
for(int i=dr;i>=1;i--)
if(dp[i]==sl)
{
q.push_back(i);
sl--;
}
sl=q.size();
for(int i=sl-1;i>=0;i--)
cout<<v[q[i]]<<" ";
return 0;
}