Pagini recente » Cod sursa (job #1573217) | Cod sursa (job #2684348) | Cod sursa (job #2465330) | Cod sursa (job #387534) | Cod sursa (job #1473517)
#include <iostream>
#include <fstream>
#define NMAX 100002
using namespace std;
int a[NMAX],l[NMAX],poz[NMAX],n,maxim,pozm;
int main()
{
ifstream in("scmax.in");
ofstream out("scmax.out");
in >> n;
for(int i=1;i<=n;i++)
in >> a[i];
l[n]=1;
poz[n]=-1;
for(int i=n-1;i>0;i--)
{
poz[i]=-1;
l[i]=1;
for(int j=i+1;j<=n;j++)
{
if(a[i]<a[j] && l[i]< 1 + l[j])
{
l[i] = 1 + l[j];
poz[i]= j;
}
}
}
for(int i=1;i<=n;i++)
if(l[i]>maxim)
{
maxim = l[i];
pozm = i;
}
out << maxim << "\n";
while(pozm!=-1)
{
out << a[pozm] << " ";
// cout << pozm << " ";
pozm = poz[pozm];
}
return 0;
}