Pagini recente » Cod sursa (job #3279193) | Cod sursa (job #286552) | Cod sursa (job #913082) | Borderou de evaluare (job #1061330) | Cod sursa (job #671905)
Cod sursa(job #671905)
#include<fstream>
using namespace std;
int main()
{
ifstream cin("scmax.in");ofstream cout("scmax.out");
int lis[100001],i,n,m,k,o,x[100001],v[100001],j;
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
lis[n]=1;
for(i=n-1;i>=1;i--)
{
m=0;
for(j=i+1;j<=n;j++)
if(m<lis[j]&&x[i]<x[j])
{
m=lis[j];
}
lis[i]=m+1;
}
m=lis[1];
for(i=2;i<=n;i++)
if(m<lis[i])
m=lis[i];
cout<<m<<"\n";
for(i=1;i<n;i++)
{
k=1;o=x[i];
for(j=i+1;j<=n;j++)
if(x[j]>o)
{
v[0]=i;v[k]=j;k++;o=x[j];
}
if(m==k)
{
for(i=0;i<k;i++)
cout<<x[v[i]]<<" ";
return 0;
}
}
}