Advertisement
Sanlover

Untitled

Nov 23rd, 2021
805
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.02 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5.   int*** matrix;
  6.   size_t b, c, d;
  7.   cout << "Enter b: ";
  8.   cin >> b;
  9.   cout << "Enter c: ";
  10.   cin >> c;
  11.   cout << "Enter d: ";
  12.   cin >> d;
  13.  
  14.   matrix = new int**[b];
  15.   for (size_t i = 0; i < b; i++) {
  16.     matrix[i] = new int*[c];
  17.     for (size_t j = 0; j < c; j++) {
  18.       matrix[i][j] = new int[d];
  19.     }
  20.   }
  21.  
  22.   cout << "fill matrix:" << endl;
  23.   for (size_t i = 0; i < b; i++) {
  24.     for (size_t j = 0; j < c; j++) {
  25.       for (size_t k = 0; k < d; k++) {
  26.         cout << "[" << i << "][" << j << "][" << k << "]) ";
  27.         cin >> matrix[i][j][k];
  28.       }
  29.     }
  30.   }
  31.  
  32.   size_t rowsAmount = (b + c) * d + b * c;
  33.   size_t** minIds = new size_t*[3];
  34.   size_t** maxIds = new size_t*[3];
  35.   for (size_t i = 0; i < 3; i++) {
  36.     minIds[i] = new size_t[rowsAmount];
  37.     maxIds[i] = new size_t[rowsAmount];
  38.   }
  39.  
  40.   size_t counter = 0;
  41.   for (size_t i = 0; i < b; i++) {
  42.     for (size_t j = 0; j < c; j++) {
  43.       size_t maxIdD = 0, minIdD = 0;
  44.       for (size_t k = 0; k < d; k++) {
  45.         if (matrix[i][j][maxIdD] < matrix[i][j][k]) {
  46.           maxIdD = k;
  47.         }
  48.         if (matrix[i][j][minIdD] > matrix[i][j][k]) {
  49.           minIdD = k;
  50.         }
  51.       }
  52.       minIds[0][counter] = i;
  53.       minIds[1][counter] = j;
  54.       minIds[2][counter] = minIdD;
  55.       maxIds[0][counter] = i;
  56.       maxIds[1][counter] = j;
  57.       maxIds[2][counter] = maxIdD;
  58.       counter++;
  59.     }
  60.   }
  61.  
  62.   for (size_t k = 0; k < d; k++) {
  63.     for (size_t i = 0; i < b; i++) {
  64.       size_t maxIdJ = 0, minIdJ = 0;
  65.       for (size_t j = 0; j < c; j++) {
  66.         if (matrix[i][maxIdJ][k] < matrix[i][j][k]) {
  67.           maxIdJ = k;
  68.         }
  69.         if (matrix[i][minIdJ][k] > matrix[i][j][k]) {
  70.           maxIdJ = k;
  71.         }
  72.       }
  73.       minIds[0][counter] = i;
  74.       minIds[1][counter] = minIdJ;
  75.       minIds[2][counter] = k;
  76.       maxIds[0][counter] = i;
  77.       maxIds[1][counter] = maxIdJ;
  78.       maxIds[2][counter] = k;
  79.       counter++;
  80.     }
  81.   }
  82.  
  83.   for (size_t k = 0; k < d; k++) {
  84.     for (size_t j = 0; j < c; j++) {
  85.       size_t maxIdI = 0, minIdI = 0;
  86.       for (size_t i = 0; i < b; i++) {
  87.         if (matrix[minIdI][j][k] < matrix[i][j][k]) {
  88.           maxIdI = i;
  89.         }
  90.         if (matrix[maxIdI][j][k] > matrix[i][j][k]) {
  91.           maxIdI = i;
  92.         }
  93.       }
  94.       minIds[0][counter] = minIdI;
  95.       minIds[1][counter] = j;
  96.       minIds[2][counter] = k;
  97.       maxIds[0][counter] = maxIdI;
  98.       maxIds[1][counter] = j;
  99.       maxIds[2][counter] = k;
  100.       counter++;
  101.     }
  102.   }
  103.  
  104.   cout << "Min and max coordinates:" << endl;
  105.   for (size_t i = 0; i < counter; i++) {
  106.     matrix[minIds[0][i]][minIds[1][i]][minIds[2][i]] = 0;
  107.     matrix[maxIds[0][i]][maxIds[1][i]][maxIds[2][i]] = 0;
  108.     cout << "max[" << i << "] = (" << maxIds[0][i] << ";" << maxIds[1][i] << ":"
  109.          << maxIds[2][i] << ")" << endl;
  110.     cout << "min[" << i << "] = (" << minIds[0][i] << ";" << minIds[1][i] << ":"
  111.          << minIds[2][i] << ")" << endl;
  112.   }
  113.   return 0;
  114. }
  115.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement