Pagini recente » Cod sursa (job #1569970) | Cod sursa (job #2458667)
#include <fstream>
using namespace std;
int v[100001], l[100001], ult[100001];
void subsir(int p)
{
if(ult[p]!=0)
subsir(ult[p]);
fout<<v[p]<<" ";
}
int main()
{
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,maxx=0,imax=1;
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
l[1]=1;
for(int i=1;i<=n;i++)
{
maxx=0;
for(int j=1;j<i;j++)
{
if(v[i]>v[j] and l[i]<l[j])
{
l[i]=l[j];
ult[i]=j;
}
}
l[i]++;
if(l[i]>l[imax])
imax=i;
}
int i=imax,k=0;
fout<<l[imax]<<"\n";
subsir(imax);
/*while(k!=l[imax])
{
cout<<v[i]<<" ";
i=ult[i];
k++;
}*/
return 0;
}