Pagini recente » Cod sursa (job #1498379) | Cod sursa (job #1595245) | Cod sursa (job #2160286) | Cod sursa (job #2713931) | Cod sursa (job #1458655)
//scmax
#include<bits/stdc++.h>
#define debug cerr<<"ok";
#define MAXN 100000
using namespace std;
int n,i,j,a[MAXN],best[MAXN],child[MAXN],celMaiTheBest,indexM;
void drum(){
while(celMaiTheBest){
printf("%d ",a[indexM]);
indexM=child[indexM];
celMaiTheBest--;
}
}
int main ()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
int maX=0,index=0;
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
best[n]=1;
for(i=n-1;i>=1;i--,maX=0){
child[i]=-1;
for(j=i+1;j<=n;j++)
if(best[j] > maX && a[i] < a[j]){
maX=best[j];
child[i]=j;
}
best[i]=maX+1;
if(best[i] > celMaiTheBest){
celMaiTheBest=best[i];
indexM=i;
}
}
printf("%d\n",celMaiTheBest);
drum();
return 0;
}