Pagini recente » Cod sursa (job #300508) | Cod sursa (job #2326699) | Cod sursa (job #1256021) | Cod sursa (job #1671515) | Cod sursa (job #704103)
Cod sursa(job #704103)
#include<fstream>
#include<limits>
using namespace std;
#define NMax 1024
long v[NMax],l[NMax],p[NMax],N;
int maxim (long v[], long n)
{int i,p,m=-LONG_MAX;
for(i=1;i<=n;i++)
if(v[i]>m)
m=v[i],p=i;
return p;
}
int main ()
{int i,j,max=0,poz,ok=0;
ifstream in ("scmax.in");
ofstream out ("scmax.out");
in>>N;
for(i=1;i<=N;i++)
in>>v[i];
l[N]=1;p[N]=0;
for(i=N-1;i>=1;i--)
{max=0;
for(j=i+1;j<=N;j++)
if(l[j]>max&&v[j]>v[i])
{max=l[j]; poz=j;}
if(max==0)
l[i]=1,p[i]=0;
else
l[i]=1+max,p[i]=poz;
}
poz=maxim(l,N);
out<<l[poz]<<'\n';
do
{out<<v[poz]<<' ';
poz=p[poz];
if(poz==0)
ok=1;
}
while(ok==0);
out<<'\n';
in.close();
out.close();
return 0;
}