Pagini recente » Cod sursa (job #2836927) | Cod sursa (job #2916796) | Cod sursa (job #1621582) | Cod sursa (job #766511) | Cod sursa (job #948070)
Cod sursa(job #948070)
#include <cstdio>
using namespace std;
FILE* fin= fopen("scmax.in","r");
FILE*fout=fopen("scmax.out","w");
unsigned int i,j,k,n,v[100002],p[100002],l[100002],lmax,poz;
int main()
{
fscanf(fin,"%d",&n);
for (i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
for (i=1;i<=n;i++)
l[i]=1;
for(i=n-1;i>0;i--)
for (j=i+1;j<=n;j++)
if (v[j]>v[i]&&l[i]<l[j]+1)
{l[i]=l[j]+1;
if (l[i]>lmax)
{lmax=l[i];
poz=i;}
p[i]=j;}
fprintf(fout,"%d\n",lmax);
while (p[poz]!=0)
{
fprintf(fout,"%d ",v[poz]);
poz=p[poz];
}
fprintf(fout,"%d\n",v[poz]);
return 0;
}