Pagini recente » Cod sursa (job #3160388) | Cod sursa (job #1440393) | Cod sursa (job #2705421) | Cod sursa (job #2962503) | Cod sursa (job #2394812)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int 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=1;
int maxim=s[1];
for (i=1;i<=n;i++)
{
if (maxim<s[i])
{
maxim=s[i];
imax=i;
}
}
g<<maxim<<'\n';
k(imax);
}