Pagini recente » Cod sursa (job #3266674) | Cod sursa (job #2637336) | Cod sursa (job #2741287) | Cod sursa (job #3189365) | Cod sursa (job #1367826)
//subsir crescator maximal
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,nr,v[100099],l[100099],maxx,poz,ante[100099],fin[100099];
int main()
{
f>>n;
for (int i=1; i<=n; ++i)
{
f>>v[i];
l[i]=1;
}
l[1]=1;
for(int i=2; i<=n; ++i)
for (int j=1; j<i; ++j)
if (v[j]<v[i])
{
if (l[i]<l[j]+1)
{
l[i]=l[j]+1;
ante[i]=j;
}
}
maxx=1;
for (int i=1; i<=n; ++i)
if (l[i]>maxx)
{
maxx=l[i];
poz=i;
}
nr=0;
while (poz!=0)
{
++nr;
fin[nr]=v[poz];
poz=ante[poz];
}
g<<maxx<<'\n';
for (int i=nr; i>=1; --i) g<<fin[i]<<' ';
g<<'\n';
g.close(); f.close();
return 0;
}