fork(1) download
  1. #include<stdio.h>
  2. #include<string.h>
  3. void lis(int str[],int n)
  4. {
  5. int len[n],prev[n],i,j,max=-1,k,b[n],a=0;
  6. for(i=0;i<n;i++){
  7. len[i]=1;
  8. prev[i]=-1;
  9. }
  10. for(i=1;i<n;i++)
  11. for(j=0;j<i;j++){
  12. if(str[i]>str[j]&& len[i]<(len[j]+1)){
  13. len[i]=len[j]+1;
  14. prev[i]=j;
  15.  
  16. }
  17. }
  18. for(i=0;i<n;i++)
  19. if(len[i]>max)
  20. { max=len[i]; k=i;}
  21. b[a]=str[k];
  22. for(i=prev[k];i>=0;i=prev[k])
  23. {b[++a]=str[i];k=i;}
  24. for(i=max-1;i>=0;i--)
  25. printf("%d ",b[i]);
  26. }
  27. main()
  28. {
  29. int str[]={5,9,4};
  30. lis(str,sizeof(str)/4);
  31. return 0;
  32. }
  33.  
Success #stdin #stdout 0.02s 2724KB
stdin
Standard input is empty
stdout
5 9