Pagini recente » Cod sursa (job #841496) | Cod sursa (job #2089065) | Cod sursa (job #47573) | Cod sursa (job #2491482) | Cod sursa (job #485348)
Cod sursa(job #485348)
#include <cstdio>
using namespace std;
int a[100005],l[100005],poz[100005],n,max,maxi;
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for (int i=0;i<n;i++)
scanf("%d",&a[i]);
for (int i=n-1;i>=0;i--)
{
max=0;
for (int j=i+1;j<=n-1;j++)
{
if (a[j]>a[i])
if (max<l[j])
{
max=l[j];
poz[i]=j;
}
}
l[i]=1+max;
if (max==0)
poz[i]=-1;
max=0;
}
max=0;
for (int i=0;i<n;i++)
if (max<l[i])
{
max=l[i];
maxi=i;
}
printf("%d\n",max);
printf("%d ",a[maxi]);
for (int i=0;i<max-1;i++)
{
printf("%d ",a[poz[maxi]]);
maxi=poz[maxi];
}
return 0;
}