Pagini recente » Cod sursa (job #753110) | Cod sursa (job #2188903) | Cod sursa (job #512473) | Cod sursa (job #759149) | Cod sursa (job #1967013)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
int v[100001],l[100001],p[100001],n,i,L,Max,j;
int main()
{
fin>>n;
for (i=1;i<=n;i++)
{fin>>v[i];l[i]=1;
p[i]=-1;}
for (i=n-1;i>=1;i--)
{
for (j=i+1;j<=n;j++)
{
if (v[i]<v[j])
if (l[i]<l[j]+1)
l[i]=l[j]+1,p[i]=j;
}
}
for (i=1;i<=n;i++)
if (l[i]>Max) Max=l[i];
fout<<Max<<"\n";
for (i=1;i<=n;i++)
{
if (l[i]==Max) {
L=1;
while (L<=Max)
{fout<<v[i]<<" ";i=p[i];
L++;}
break;
}
}
fout.close();
return 0;
}