Pagini recente » Cod sursa (job #2538681) | Cod sursa (job #32981) | Cod sursa (job #2663086) | Cod sursa (job #3137896) | Cod sursa (job #2282027)
#include <iostream>
#include <fstream>
using namespace std;
int a[100001],n,mx[100001],ord[100001];
ifstream in ("scmax.in");
ofstream out ("scmax.out");
int main()
{
int i;
in>>n;
for(i=1; i<=n; i++)
in>>a[i];
i=n;
mx[i]=1;
ord[i]=n;
for(i=n-1; i>0; i--)
{
mx[i]=1; ord[i]=i;
for(int j=i+1; j<=n; j++)
{
if(a[j]>a[i]&&mx[i]<=mx[j])
{
mx[i]=1+mx[j];
ord[i]=j;
}
}
}
int mxi=-1,k;
for(i=1; i<=n; i++)
if(mxi<mx[i])
{
mxi=mx[i];
k=i;
}
out<<mx[k]<<"\n";
int j=k;
for(i=1; i<=mxi; i++)
{
out<<a[j]<<" ";
j=ord[j];
}
return 0;
}