Pagini recente » Cod sursa (job #1384821) | Cod sursa (job #2396490) | Cod sursa (job #596986) | Cod sursa (job #2905907) | Cod sursa (job #2553618)
#include <fstream>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
int a[100001], lg[100001], urm[100001], n, i, j, jm, lgmax, im;
int main()
{
fin>>n;
for(i=1; i<=n; i++)
fin>>a[i];
lg[n]=1;
urm[n]=0;
for(i=n-1; i>=1; i--)
{
jm=0;
lgmax=0;
for(j=i+1; j<=n; j++)
if(a[i]<a[j]&&lg[j]>lgmax)
{
lgmax=lg[j];
jm=j;
}
lg[i]=lgmax+1;
urm[i]=jm;
}
lgmax=lg[i];
im=1;
for(i=2; i<=n; i++)
if(lg[i]>lgmax)
{
lgmax=lg[i];
im=i;
}
fout<<lgmax<<'\n';
do
{
fout<<a[im]<<' ';
im=urm[im];
}
while(im!=0);
return 0;
}