Pagini recente » Cod sursa (job #1824567) | Cod sursa (job #907611) | Cod sursa (job #407778) | Cod sursa (job #2267425) | Cod sursa (job #2561796)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int main()
{
unsigned v[100010],dp[100010]={0},finall[100001],n,sol=0;
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
dp[1]=1;
for(int i=2;i<=n;i++)
{
int maxx=0;
for(int j=i-1;j>=1;j--)
{
if(v[i]>v[j])
{
if(dp[j]>maxx)
maxx=dp[j];
}
}
dp[i]=maxx+1;
if(dp[i]>sol)
sol=dp[i];
}
fout<<sol<<"\n";
int contor=n,ind=0;
while(sol)
{
if(dp[contor]==sol)
{
finall[++ind]=v[contor];
contor--;
sol--;
}
else
{
contor--;
}
if(!contor)
break;
}
for(;ind>=1;ind--)
fout<<finall[ind]<<" ";
}