Pagini recente » Cod sursa (job #2225724) | Cod sursa (job #1263202) | Cod sursa (job #1606993) | Cod sursa (job #857442) | Cod sursa (job #1789196)
//subsir crescator maximal - infoarena.ro
#include <iostream>
#include <fstream>
using namespace std;
int a[100005],n,l[100005];
ifstream fin("scmax.in");
ofstream fout("scmax.out");
void citire ()
{
fin>>n;
for(int i=0;i<n;i++)
fin>>a[i];
}
int pmax=n;
int lg ()
{
for(int i=n-1;i>=0;i--)
{
l[i]=1;
for(int j=i+1;j<n;j++)
if(a[j]>a[i])
l[i]=max(l[i],1+l[j]);
if(l[i]>l[pmax])
pmax=i;
}
return l[pmax];
}
void afisare()
{
for(int i=pmax;i<n;)
{
fout<<a[i]<<" ";
if(l[i]==1)
break;
for(int j=i+1;j<n;j++)
if(a[j]>a[i] && l[j]==l[i]-1)
{
i=j;
break;
}
}
}
int main()
{
citire();
fout<<lg () <<endl;
afisare ();
return 0;
}