Pagini recente » Cod sursa (job #2897679) | Cod sursa (job #2799852) | Cod sursa (job #1991932) | Cod sursa (job #1707537) | Cod sursa (job #663797)
Cod sursa(job #663797)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int v[200],dp[200];
vector<int> v2;
int main()
{
int n,maximgeneral=0;
freopen("scmax.in","r",stdin);
freopen("scmax.out","w", stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&v[i]);
int maxim=0;
for(int j=0;j<i;j++)
{
if(v[j]<v[i]) maxim=max(maxim,dp[j]);
}
dp[i]=1+maxim;
maximgeneral=max(maximgeneral,dp[i]);
}
printf("%d\n",maximgeneral);
for(int i=n;i>=1;i--)
{
if(dp[i]==maximgeneral)
{
v2.push_back(i);
maximgeneral--;
}
}
for(int i=v2.size()-1;i>=0;i--) printf("%d ",v[v2[i]]);
return 0;
}