Pagini recente » Cod sursa (job #2338750) | Cod sursa (job #3192278) | Cod sursa (job #1704921) | Cod sursa (job #867491) | Cod sursa (job #2252058)
#include <fstream>
using namespace std;
int l[100001],tata[100001],n,i,sol[100001],Max,poz,k,v[100001],j;
int main()
{
ifstream cin("scmax.in");
ofstream cout("scmax.out");
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
Max=0;
for(i=1;i<=n;i++){
l[i]=1;
tata[i]=0;
for(j=i-1;j>=1;j--)
if(v[i]>v[j])
if(l[i]<l[j]+1){
l[i]=l[j]+1;
tata[i]=j;
}
if(l[i]>Max){
Max=l[i];
poz=i;
}
}
k=Max;
while(k!=0){
sol[k]=poz;
poz=tata[poz];
k--;
}
cout<<Max<<'\n';
for(i=1;i<=Max;i++)
cout<<v[sol[i]]<<" ";
return 0;
}