Pagini recente » Cod sursa (job #3177489) | Cod sursa (job #2643862) | Cod sursa (job #3186595) | Cod sursa (job #3230490) | Cod sursa (job #687702)
Cod sursa(job #687702)
#include<stdio.h>
FILE *fin = fopen("scmax.in","r");
FILE *fout = fopen("scmax.out","w");
int indi,a[100001],nr[100001],urm[100001],n,i,j,max,ult,lg;
int main()
{
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&a[i]);
nr[n] = 1;
urm[n] = 0;
for(i=n-1;i>=1;i--)
{
ult = 0;
lg = 1;
for(j=i+1;j<=n;j++)
{
if(a[i]<a[j] && lg <= nr[j])
{
lg = nr[j]+1;
ult = j;
}
}
nr[i] = lg;
urm[i] = ult;
}
for(i=1;i<=n;i++)
if(nr[i]>max)
max = nr[i],indi=i;
fprintf(fout,"%d\n",max);
while(urm[indi])
{
fprintf(fout,"%d ",a[indi]);
indi = urm[indi];
}
fprintf(fout,"%d ",a[indi]);
}