Pagini recente » Cod sursa (job #462525) | Cod sursa (job #622071) | Cod sursa (job #2304871) | Cod sursa (job #2948016) | Cod sursa (job #1112015)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
long v[100010];
int n,l[100010],m,x,ante[100010],poz;
void constr(int poz)
{
if(ante[poz]==poz)
{
g<<v[poz]<<' ';
return;
}
constr(ante[poz]);
g<<v[poz]<<' ';
}
int main()
{
f>>n;
for(int i=1;i<=n;++i) f>>v[i];
for(int i=1;i<=n;++i)
{
if(l[i]==0)
{
l[i]++;
ante[i]=i;
}
for(int j=i+1;j<=n;++j)
{
if(v[i]<v[j]&&l[j]<l[i]+1)
{
l[j]=l[i]+1;
ante[j]=i;
}
}
}
m=-1;
for(int k=1;k<=n;k++)
{
if(m<l[k])
{
m=l[k];
poz=k;
}
}
g<<m<<'\n';
constr(poz);
}