Pagini recente » Cod sursa (job #2478961) | Cod sursa (job #2923445) | Cod sursa (job #3168119) | Cod sursa (job #2261996) | Cod sursa (job #2377400)
#include <fstream>
#include <cstring>
#include <iostream>
using namespace std;
ifstream in ("scmax.in");
ofstream out ("scmax.out");
int n,a[100005],sol[100005];
int sclm(int s[],int a[],int n)
{
int m[1005],u[1005],mx=0,poz;
m[n]=1;
u[n]=0;
memset(u,0,sizeof(u));
for(int i=n-1; i; i--)
{
m[i]=1;
for(int j=i+1; j<=n; j++)
if(a[i]<a[j]&&m[j]>=m[i])
{
m[i]=m[j]+1,u[i]=j;
if(m[i]>=mx)
mx=m[i],poz=i;
}
}
for(int i=1; i<=mx; i++)
s[i]=a[poz],poz=u[poz];
return mx;
}
int main()
{
in>>n;
for(int i=1; i<=n; i++)
in>>a[i];
int nr=sclm(sol,a,n);
out<<nr<<'\n';
for(int i=1; i<=nr; i++)
out<<sol[i]<<' ';
}