Pagini recente » Cod sursa (job #418537) | Cod sursa (job #1883948) | Cod sursa (job #453589) | Cod sursa (job #653521) | Cod sursa (job #1146646)
#include <cstdio>
using namespace std;
long n,i,a[100010],y,b[100010],c[100010],max,p,len,l,pp,crt;
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%ld",&n);
for (i=1; i<=n; i++)
{
scanf("%ld",&a[i]);
for (y=0; y<i; y++)
if (a[y]<a[i])
if (b[y]+1>b[i])
b[i]=b[y]+1;
if (max<b[i])
{
max=b[i];
p=i;
}
}
l=b[p]; l--; pp=p;
crt=1; c[1]=a[p]; p--;
do{
while (!((b[p]==l)&&(a[p]<a[pp]))) p--;
crt++; c[crt]=a[p]; p--; l--;
}while (l>0);
printf("%ld\n",b[pp]);
for (p=b[pp]; p; p--)
printf("%ld ",c[p]);
return 0;
}