Pagini recente » Cod sursa (job #2879452) | Cod sursa (job #2639919) | Cod sursa (job #1717357) | Cod sursa (job #2593055) | Cod sursa (job #632581)
Cod sursa(job #632581)
#include<stdio.h>
int main ()
{
FILE *f=fopen("scmax.in","rt");
FILE *g=fopen("scmax.out","wt");
int sir[20],s[20],prec[20],best[20],n,i,j,k,m=0,l=0,maxbest=0,max=0;
fscanf(f,"%i",&n);
for(i=0;i<n;i++)
fscanf(f,"%i",&sir[i]);
for(i=0;i<n;i++)
{
best[i]=0;
prec[i]=-1;
}
best[0]=1;
for(i=1;i<n;i++)
{
max=0;
for(j=0;j<i;j++)
{
if(sir[j]<sir[i] && max<=sir[j])
{
max=sir[j];
best[i]=1+best[j];
prec[i]=j;
}
if(sir[j]==sir[i])
best[j]=best[i];
}
if(best[i]==0)
best[i]=1;
}
for(i=0;i<n;i++)
if(best[i]>maxbest)
maxbest=best[i];
j=0;
for(i=n-1;i>=0;i--)
if(best[i]==maxbest)
{
s[j++]=sir[i];
if(prec[i]>=0)
s[j++]=sir[prec[i]];
i=prec[i];
maxbest=maxbest-2;
}
fprintf(g,"%i\n",j);
for(i=j-1;i>=0;i--)
fprintf(g,"%i ",s[i]);
}