Pagini recente » Cod sursa (job #1375636) | Cod sursa (job #2639812) | Cod sursa (job #420009) | Cod sursa (job #3126809) | Cod sursa (job #812614)
Cod sursa(job #812614)
#include <iostream>
#include<stdio.h>
#define infinit 100001
using namespace std;
int a[infinit],b[infinit],i,j,n,maxi,m,x,maxim;
void cresc(int n,int x,int y)
{
int i;
for(i=n;i>=1;i--)
{
if(a[i]<=y&&b[i]==x)
{
cresc(i-1,b[i]-1,a[i]);
printf("%d ",a[i]);
i=0;
}
}
}
void cres()//subsir crescator maximal
{
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
b[1]=1;
for(i=2;i<=n;i++)
{
maxi=1;
for(j=i-1;j>=1;j--)
if(b[j]+1>maxi&&a[j]<a[i])
maxi=b[j]+1;
b[i]=maxi;
if(maxi>maxim)
maxim=maxi;
}
printf("%d\n",maxim);
cresc(n,maxim,infinit);
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
cres();
return 0;
}