Pagini recente » Cod sursa (job #1181960) | Cod sursa (job #686660) | Cod sursa (job #16685) | Cod sursa (job #2659928) | Cod sursa (job #1809325)
#include <fstream>
using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
int a[1003],n,i,j,m,L[1003],t,k,maxi,ant[1003],sol[1003],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]]<<" ";
}