Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main() {
- int*** matrix;
- size_t b, c, d;
- cout << "Enter b: ";
- cin >> b;
- cout << "Enter c: ";
- cin >> c;
- cout << "Enter d: ";
- cin >> d;
- matrix = new int**[b];
- for (size_t i = 0; i < b; i++) {
- matrix[i] = new int*[c];
- for (size_t j = 0; j < c; j++) {
- matrix[i][j] = new int[d];
- }
- }
- cout << "fill matrix:" << endl;
- for (size_t i = 0; i < b; i++) {
- for (size_t j = 0; j < c; j++) {
- for (size_t k = 0; k < d; k++) {
- cout << "[" << i << "][" << j << "][" << k << "]) ";
- cin >> matrix[i][j][k];
- }
- }
- }
- size_t rowsAmount = (b + c) * d + b * c;
- size_t** minIds = new size_t*[3];
- size_t** maxIds = new size_t*[3];
- for (size_t i = 0; i < 3; i++) {
- minIds[i] = new size_t[rowsAmount];
- maxIds[i] = new size_t[rowsAmount];
- }
- size_t counter = 0;
- for (size_t i = 0; i < b; i++) {
- for (size_t j = 0; j < c; j++) {
- size_t maxIdD = 0, minIdD = 0;
- for (size_t k = 0; k < d; k++) {
- if (matrix[i][j][maxIdD] < matrix[i][j][k]) {
- maxIdD = k;
- }
- if (matrix[i][j][minIdD] > matrix[i][j][k]) {
- minIdD = k;
- }
- }
- minIds[0][counter] = i;
- minIds[1][counter] = j;
- minIds[2][counter] = minIdD;
- maxIds[0][counter] = i;
- maxIds[1][counter] = j;
- maxIds[2][counter] = maxIdD;
- counter++;
- }
- }
- for (size_t k = 0; k < d; k++) {
- for (size_t i = 0; i < b; i++) {
- size_t maxIdJ = 0, minIdJ = 0;
- for (size_t j = 0; j < c; j++) {
- if (matrix[i][maxIdJ][k] < matrix[i][j][k]) {
- maxIdJ = k;
- }
- if (matrix[i][minIdJ][k] > matrix[i][j][k]) {
- maxIdJ = k;
- }
- }
- minIds[0][counter] = i;
- minIds[1][counter] = minIdJ;
- minIds[2][counter] = k;
- maxIds[0][counter] = i;
- maxIds[1][counter] = maxIdJ;
- maxIds[2][counter] = k;
- counter++;
- }
- }
- for (size_t k = 0; k < d; k++) {
- for (size_t j = 0; j < c; j++) {
- size_t maxIdI = 0, minIdI = 0;
- for (size_t i = 0; i < b; i++) {
- if (matrix[minIdI][j][k] < matrix[i][j][k]) {
- maxIdI = i;
- }
- if (matrix[maxIdI][j][k] > matrix[i][j][k]) {
- maxIdI = i;
- }
- }
- minIds[0][counter] = minIdI;
- minIds[1][counter] = j;
- minIds[2][counter] = k;
- maxIds[0][counter] = maxIdI;
- maxIds[1][counter] = j;
- maxIds[2][counter] = k;
- counter++;
- }
- }
- cout << "Min and max coordinates:" << endl;
- for (size_t i = 0; i < counter; i++) {
- matrix[minIds[0][i]][minIds[1][i]][minIds[2][i]] = 0;
- matrix[maxIds[0][i]][maxIds[1][i]][maxIds[2][i]] = 0;
- cout << "max[" << i << "] = (" << maxIds[0][i] << ";" << maxIds[1][i] << ":"
- << maxIds[2][i] << ")" << endl;
- cout << "min[" << i << "] = (" << minIds[0][i] << ";" << minIds[1][i] << ":"
- << minIds[2][i] << ")" << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement