Pagini recente » Cod sursa (job #2754562) | Cod sursa (job #1169846) | Cod sursa (job #212432) | Cod sursa (job #700093) | Cod sursa (job #1384446)
#include <stdio.h>
using namespace std;
#define M 100001
FILE *fin=fopen("scmax.in" ,"r");
FILE *fout=fopen("scmax.out" ,"w");
int am[M] , v[M] ,prec[M] ,best[M];
int main()
{
int maxx=0 ,maxxp=0 , i ,j ,n ,incep ,cont ,pr;
fscanf(fin ,"%d" ,&n);
for(i=1;i<=n;i++)
{
fscanf(fin ,"%d" ,&v[i]);
}
best[1]=1;
prec[1]=0;
for(i=2;i<=n;i++)
{
for(j=1;j<i;j++)
{
if(v[i]>v[j] && best[j]>maxx)
{
maxx=best[j];
pr=j;
}
}
best[i]=1+maxx;
prec[i]=pr;
if(best[i]>maxxp)
{
incep=i;
maxxp=best[i];
}
maxx=0;
}
am[1]=v[incep];
cont=1;
while(prec[incep]!=0)
{
cont++;
am[cont]=v[prec[incep]];
incep=prec[incep];
}
fprintf(fout ,"%d\n" ,maxxp);
for(i=cont;i>=1;i--) fprintf(fout ,"%d ", am[i]);
return 0;
}