Pagini recente » Cod sursa (job #83064) | Cod sursa (job #3222509) | Cod sursa (job #183966) | Cod sursa (job #1557974) | Cod sursa (job #2040738)
#include <fstream>
using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
int n;
int lmax,maxi,pozfin;
int X[100001],L[100001],ANT[100001];
void afiseaza(int i)
{
if(i!=0 && ANT[i]!=0)
afiseaza(ANT[i]);
fo<<X[i]<<" ";
}
int main()
{
fi>>n;
for(int i=1; i<=n; i++)
{
fi>>X[i];
maxi=0;
for(int j=1; j<=i-1; j++)
{
if(maxi<L[j] && X[i]>X[j])
{
maxi=L[j];
ANT[i]=j;
L[i]=maxi;
}
}
L[i]++;
if(lmax<L[i])
{
lmax=L[i];
pozfin=i;
}
}
fo<<lmax<<"\n";
afiseaza(pozfin);
fi.close();
fo.close();
return 0;
}