Advertisement
icatalin

Subsir crescator maximal

May 30th, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.85 KB | None | 0 0
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int v[10],n,lmax[10],succ[10];
  6.  
  7. void citire()
  8. {
  9.     FILE *fin;
  10.     fin=fopen("date.in","r");
  11.     fscanf(fin,"%d",&n);
  12.     int i;
  13.     for(i=0;i<n;i++)
  14.         fscanf(fin,"%d",&v[i]);
  15.     fclose(fin);
  16.     lmax[n-1]=1;
  17.     succ[n-1]=-1;
  18. }
  19.  
  20. void subsir()
  21. {
  22.     int i,j,max=0;
  23.  
  24.     for(i=n-2;i>=0;i--)
  25.     {
  26.         lmax[i]=1;
  27.         succ[i]=-1;
  28.         for(j=i+1;j<n;j++)
  29.         {
  30.             if(v[j]>=v[i] && 1+lmax[j]>lmax[i])
  31.             {
  32.                 lmax[i]=1+lmax[j];
  33.                 succ[i]=j;
  34.             }
  35.         }
  36.     }
  37.  
  38.     for(i=0;i<n;i++)
  39.         if(lmax[i]>lmax[max])
  40.             max=i;
  41.  
  42.     printf("Lungimea maxima e %d.\n",lmax[max]);
  43.  
  44.     for(i=max; i!=-1; i=succ[i])
  45.         printf("%d ",v[i]);
  46. }
  47.  
  48. int main()
  49. {
  50.  
  51.     citire();
  52.     subsir();
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement