Pagini recente » Cod sursa (job #1769298) | Cod sursa (job #3178377) | Cod sursa (job #2978538) | Cod sursa (job #1227931) | Cod sursa (job #2282026)
#include <iostream>
#include <fstream>
using namespace std;
int a[10000],n,mx[10000],ord[10000];
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;
}