Guest User

Untitled

a guest
May 20th, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define MAX 100
  4.  
  5. const int x[MAX] = {100,10,15,5,25,22,12,22};
  6.  
  7. const unsigned n = 7;
  8. int LNS[MAX][MAX];
  9.  
  10.  
  11. unsigned LNS_Length(void){
  12. unsigned i,j,r;
  13.  
  14. for(i = 0; i <= n; i++){
  15. for(j = 1; j <= n; j++)
  16. LNS[i][j] = MAX +1;
  17. LNS[i][0] = -1;
  18. }
  19.  
  20. r = 1;
  21. for(i = 1; i <= n; i++){
  22. for(j = 1; j <= n; j++){
  23. if(LNS[i - 1][j - 1] <= x[i] && x[i] <= LNS[i - 1][j]
  24. && LNS[i - 1][j - 1] <= LNS[i - 1][j]) {
  25. LNS[i][j] = x[i];
  26. if (r < j)
  27. r = j;
  28.  
  29. } else
  30. LNS[i][j] = LNS[i - 1][j];
  31. }
  32.  
  33.  
  34. }
  35. return r;
  36. }
  37.  
  38. void LNS_Print2(unsigned i, unsigned j) {
  39. if(0 == i) return;
  40. if(LNS[i][j] == LNS[i - 1][j])
  41. LNS_Print2(i - 1, j);
  42. else {
  43. LNS_Print2(i,j - 1);
  44. printf("%d ", x[i]);
  45. }
  46. }
  47.  
  48. int main(){
  49. unsigned len = LNS_Length();
  50. printf("%u дължина\n", len);
  51. LNS_Print2(n,len);
  52.  
  53. puts("");
  54.  
  55.  
  56.  
  57. return 0;
  58. }
Add Comment
Please, Sign In to add comment