Pagini recente » Cod sursa (job #2697473) | Cod sursa (job #486488) | Cod sursa (job #1521126) | Cod sursa (job #875905) | Cod sursa (job #2133665)
#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 && a[j]>a[i];vv=max(vv,dp[j]),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;
}