Pagini recente » Cod sursa (job #2206915) | Cod sursa (job #3265662) | Cod sursa (job #24587) | Cod sursa (job #2539215) | Cod sursa (job #1910246)
#include<fstream>
using namespace std;
int ans[100005],v[100005],p[100005],t[100005];
int main()
{
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int n,max=-1,k;
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>v[i];
t[i]=1;
}
for(int i=1;i<=n;++i)
{
for(int j=1;j<i;++j)
if(v[j]<v[i])
if(t[j]+1>=t[i])
{
t[i]=t[j]+1;
p[i]=j;
}
if(t[i]>max)
{
max=t[i];
k=i;
}
}
for(int i=max;i>=1;--i)
{
ans[i]=v[k];
k=p[k];
}
cout<<max<<endl;
for(int i=1;i<=max;++i)
cout<<ans[i]<<" ";
return 0;
}