Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. #include <iostream>
  2. #include <queue>
  3. #include <vector>
  4.  
  5. int foo (int **X, int i, int j, int M, int N, int *arr, int d)
  6. {
  7. std::cout << "d = " << d << std::endl;
  8. int this_d_max = arr[d];
  9. int flag = 0;
  10. if ((i >= M) || (j >= N))
  11. {
  12. return 0;
  13. }
  14.  
  15. if (X[i][j] > arr[d])
  16. {
  17. arr[d] = X[i][j];
  18. for (int k = d + 1; k < M + N; k++)
  19. {
  20. arr[k] = -1;
  21. }
  22. }
  23. else
  24. {
  25. return -1;
  26. }
  27.  
  28. flag |= foo (X, i + 1, j, M, N, arr, d + 1);
  29. flag |= foo (X, i, j + 1, M, N, arr, d + 1);
  30. if (flag == 1)
  31. {
  32. arr[d] = this_d_max;
  33. }
  34. return 0;
  35. }
  36.  
  37.  
  38.  
  39.  
  40. int main (void)
  41. {
  42. int N, M;
  43.  
  44. std::cin >> M;
  45. std::cin >> N;
  46.  
  47. int *arr;
  48. int **X;
  49.  
  50. X = new int * [M];
  51. for (int i = 0; i < M; i++)
  52. {
  53. X[i] = new int[N];
  54. }
  55.  
  56. arr = new int [M + N];
  57. for (int i = 0; i < M + N; i++)
  58. {
  59. arr[i] = -1;
  60. }
  61.  
  62.  
  63. for (int i = 0; i < M; i++)
  64. {
  65. for (int j = 0; j < N; j++)
  66. {
  67. std::cin >> X[i][j];
  68. }
  69. }
  70.  
  71.  
  72. for (int i = 0; i < M; i++)
  73. {
  74. for (int j = 0; j < N; j++)
  75. {
  76. std::cout << X[i][j] << " ";
  77. }
  78. std::cout << std::endl;
  79. }
  80.  
  81. foo (X, 0, 0, M, N, arr, 0);
  82.  
  83. for (int i = 0; i < N + M; i++)
  84. {
  85. std::cout << arr[i];
  86. }
  87. std::cout << std::endl;
  88.  
  89.  
  90. for (int i = 0; i < M; i++)
  91. {
  92. delete X[i];
  93. }
  94. delete X;
  95. delete arr;
  96.  
  97. return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement