Pagini recente » Cod sursa (job #2907236) | Cod sursa (job #121717) | Cod sursa (job #2407164) | Cod sursa (job #87333) | Cod sursa (job #2173639)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int a[100005],lg[100005],prec[100005];
int n;
void read()
{
int i;
fin>>n;
for(i=1;i<=n;++i) fin>>a[i];
fin.close();
}
void pd()
{
int i,j;
lg[1]=1; prec[1]=0;
for(i=2;i<=n;++i)
{
lg[i]=1; prec[i]=0;
for(j=1;j<i;++j)
if(a[j]<a[i] && (lg[j]+1)>lg[i])
{
lg[i]=lg[j]+1;
prec[i]=j;
}
}
}
void sirmax(int p)
{
if(prec[p]!=0)
{
sirmax(prec[p]);
}
fout<<a[p]<<" ";
}
void sol()
{
int i,j,maxi=0;
for(i=1;i<=n;++i)
{
if(lg[i]>maxi)
{
maxi=lg[i];
j=i;
}
}
fout<<maxi<<"\n";
sirmax(j);
}
int main()
{
read();
pd();
sol();
return 0;
}