Pagini recente » Cod sursa (job #660968) | Cod sursa (job #2584160) | Cod sursa (job #2917321) | Cod sursa (job #2580667) | Cod sursa (job #2133667)
#include <cstdio>
#include <algorithm>
using namespace std;
long long a[100000];
int dp[100000];
int vmax;
int main()
{
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
int n, poz;
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%lld ", &a[i]);
for(int i=n;i>=1;i--)
{
int vv=0;
for(int j=i+1;j<=n;j++)
if(a[j]>a[i] && dp[j]>vv)
vv=dp[j];
dp[i]=1+vv;
if(vmax<dp[i])
{
vmax=dp[i];
poz=i;
}
}
printf("%d\n%lld ",vmax,a[poz]);
for(int i=poz+1; i<=n && vmax!=0; i++)
{
if(dp[i] == vmax-1)
{
printf("%d ", a[i]);
vmax--;
}
}
return 0;
}