Pagini recente » Cod sursa (job #272278) | Cod sursa (job #325114) | Cod sursa (job #894893) | Cod sursa (job #2972789) | Cod sursa (job #1809327)
#include <fstream>
using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
int a[100003],n,i,j,m,L[100003],t,k,maxi,ant[100003],sol[100003],p,anterior;
int main()
{
fi>>n;
for(i=1;i<=n;i++)
fi>>a[i];
//L[1]=1;
for(i=2;i<=n;i++)
{
maxi=0;anterior=0;
for(j=1;j<i;j++)
if(L[j]>maxi&&a[i]>a[j])
{maxi=L[j];anterior=j;}
L[i]=maxi+1;
ant[i]=anterior;
}
maxi=L[1],p=1;
for(i=1;i<=n;i++)
if(maxi<L[i])
{
maxi=L[i];
p=i;
}
fo<<maxi<<endl;
do{
sol[++t]=p;
p=ant[p];
}while(p);
for(i=t;i>=1;i--)
fo<<a[sol[i]]<<" ";
}