Cod sursa(job #797982)

Utilizator alexamiu2008Miu Alexandra alexamiu2008 Data 15 octombrie 2012 13:22:44
Problema Subsir crescator maximal Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>
#include<string.h>
FILE*fin,*fout;
int n,i,j,l[100001],ultim[100001],lmax,v[100001],x,max, ind, indm,sol[100001];



int main()
{
    fin=fopen("scmax.in","r");
    fout=fopen("scmax.out","w");
   fscanf(fin,"%d",&n);
   for(i=1;i<=n;i++){
    fscanf(fin,"%d",&v[i]);
    max=0; indm=0;
    for(j=1;j<=i;j++){
        if(v[j]<v[i]){
            if(l[j]>max){max=l[j];indm=j;}

        }
    }
    l[i]=1+max;
    if(l[i]>lmax){lmax=l[i];ind=i;ultim[i]=indm;}

   }
   fprintf(fout,"%d\n ",lmax);
   j=1;
   while(ultim[ind]!=0){
  sol[j]=v[ultim[ind]];
   ind=ultim[ind];
   j++;
   }
sol[j]=v[ind];
for(i=1;i<=j;i++){
fprintf(fout,"%d ",sol[i]);
}

   fclose(fin);
   fclose(fout);
      return 0;
}