Pagini recente » Cod sursa (job #941112) | Cod sursa (job #1281877) | Cod sursa (job #1684362) | Cod sursa (job #1426069) | Cod sursa (job #177392)
Cod sursa(job #177392)
#include <stdio.h>
FILE *f1,*f2;
long i,j,a[100000],b[100000],t[100000],n,max1,max2,nr;
int main()
{
f1=fopen("scmax.in","r");
f2=fopen("scmax.out","w");
fscanf(f1,"%d",&n);
b[n]=1;
for(i=1;i<=n;i++)
{fscanf(f1,"%d",&a[i]);t[i]=-1;}
for(i=n-1;i>=1;i--)
{
for(j=i+1;j<=n;j++)
if(a[i]<a[j]&&b[i]<b[j]+1)
{
b[i]=b[j]+1;
t[i]=j;
if(b[i]>max1){max1=b[i];max2=i;}
}
if(b[i]==0)b[i]++;
}
nr=max1;
fprintf(f2,"%d\n",nr);
fprintf(f2,"%d ",a[max2]);
for(i=1;i<=nr-1;i++)
{fprintf(f2,"%d ",a[t[max2]]);
max2=t[max2];}
/*for(i=1;i<=n;i++)
fprintf(f2,"%d ",a[i]);
fprintf(f2,"\n");
for(i=1;i<=n;i++)
fprintf(f2,"%d ",b[i]);
fprintf(f2,"\n");
for(i=1;i<=n;i++)
fprintf(f2,"%d ",t[i]);
fprintf(f2,"\n");*/
fclose(f1);
fclose(f2);
}