Pagini recente » Cod sursa (job #1697467) | Cod sursa (job #1560991) | Cod sursa (job #3287985) | Cod sursa (job #656574) | Cod sursa (job #268136)
Cod sursa(job #268136)
#include<fstream.h>
void max(long a[],long n,long l[],long t[])
{long i,j,max;
memset(l,sizeof(l),0);
memset(t,sizeof(t),0);
for(i=1;i<=n;i++)
{max=0;
for(j=1;j<i;j++)
if(a[i]>a[j]&&l[j]+1>max)
{max=l[j];
t[i]=j;
}
l[i]=max+1;
}
}
int main()
{ifstream f("scmax.in");
ofstream g("scmax.out");
long a[100000],l[100000],t[100000],i,n;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
max(a,n,l,t);
long m=-1,ind;
for(i=1;i<=n;i++)
if(l[i]>m)
{m=l[i];
ind=i;
}
int b[100],j=0;
while(l[ind]>=1)
{b[++j]=a[ind];
ind=t[ind];
}
g<<j<<"\n";
for(i=j;i>=1;i--)
g<<b[i]<<" ";
f.close();
g.close();
return 0;
}