Pagini recente » Cod sursa (job #2663564) | Cod sursa (job #1215745) | Cod sursa (job #2547072) | Cod sursa (job #229932) | Cod sursa (job #1781625)
#include <stdio.h>
using namespace std;
int n,M,i,v[100050],l[100050],maxi,p,j;
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(i=1; i<=n; i++)
scanf("%d",&v[i]);
l[n]=1;M=0;
for(i=n-1; i>=1; i--)
{
maxi=0;
for(j=i+1; j<=n; j++)
if(v[i]<v[j] && l[j]>maxi)
{
maxi=l[j];
l[i]=maxi+1;
}
if(l[i]>M)
{
M=l[i];
p=i;
}
}
printf("%d\n",M);
printf("%d ",v[p]);
M--;
for(i=p+1; i<=n; i++)
if(v[i]>v[p] && l[i]==M)
{
printf("%d ",v[i]);
p=i;
M--;
}
return 0;
}