Pagini recente » Cod sursa (job #3294081) | Cod sursa (job #3285511) | Cod sursa (job #3283388) | Cod sursa (job #3293328) | Cod sursa (job #3292878)
#include <fstream>
using namespace std;
ifstream cin ("scmax.in");
ofstream cout ("scmax.out");
int v[100001],dp[100001];
int t[100001];
void drum(int u)
{
if (u!=0)
{
drum(t[u]);
cout<<v[u]<<" ";
}
}
int main()
{
int n;
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>v[i];
}
int sol=0,u;
for (int i=1;i<=n;i++)
{
int max1=0,p=0;
for (int j=1;j<i;j++)
{
if (v[j]<v[i])
{
if (dp[j]>max1)
{
max1=dp[j];
p=j;
}
}
}
dp[i]=1+max1;
t[i]=p;
if (max1==0)
t[i]=0;
if (dp[i]>sol)
{
sol=dp[i];
u=i;
}
}
cout<<sol<<'\n';
drum(u);
return 0;
}