Pagini recente » Cod sursa (job #2295901) | Cod sursa (job #2327854) | Cod sursa (job #2338803) | Cod sursa (job #1673332) | Cod sursa (job #1978254)
#include <iostream>
#include <fstream>
#define Nmax 100001
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n, v[Nmax], dp[Nmax], p[Nmax], sol[Nmax], lmax, poz;
int main()
{
f>>n;
for(int i=1;i<=n;i++)
f>>v[i];
for(int i=1;i<=n;i++)
{
for(int k=0;k<i;k++)
{
if(v[k]<v[i] && dp[i]<dp[k]+1)
{
dp[i]=dp[k]+1;
p[i]=k;
}
}
}
for(int i=1;i<=n;i++)
{
if(lmax<dp[i])
{
lmax=dp[i];
poz=i;
}
}
g<<lmax<<'\n';
int k=1;
sol[k]=v[poz];
while(p[poz]!=0)
{
sol[++k]=v[p[poz]];
poz=p[poz];
}
for(int i=k;i>0;i--)
g<<sol[i]<<" ";
return 0;
}