Pagini recente » Cod sursa (job #1540717) | Cod sursa (job #1473792) | Cod sursa (job #2948239) | Cod sursa (job #1702921) | Cod sursa (job #2394787)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
long long a[100004],n,s[100004],r[100004];
void k(int i)
{
if(r[i]==-1)
g<<a[i]<<" ";
else
{
k(r[i]);
g<<a[i]<<" ";
}
}
int main()
{ int i,j;
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
s[1]=1;
r[1]=-1;
for (i=2;i<=n;i++)
{
s[i] =1;
r[i]=-1;
for (j=1;j<i;j++)
{
if (a[j]<a[i])
if (s[j]+1>s[i])
{s[i]=s[j]+1;
r[i]=j;
}
}
}
int imax;
long long maxim=s[1];
for (i=1;i<=n;i++)
{
maxim=max(maxim,s[i]);
imax=i;
}
g<<maxim<<'\n';
k(imax);
}