वर्ग मैट्रिक्स दी गई है। क्षैतिज, लंबवत, या विकर्ण (दोनों दिशाओं) में 4 आसन्न तत्वों का अधिकतम गुणनफल खोजें।
प्रत्येक सेल से चारों दिशाओं में 4 तत्वों का गुणनफल जांचें।
उदाहरण 5x5 मैट्रिक्स के लिए अधिकतम गुणनफल 3024।
C++ कार्यान्वयन
#include <bits/stdc++.h>
using namespace std;
const int n = 5;
int FindMaxProduct(int arr[][n], int n) {
int max = 0, result;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
// क्षैतिज (बाएं)
if (j - 3 >= 0) {
result = arr[i][j] * arr[i][j-1] * arr[i][j-2] * arr[i][j-3];
if (max < result) max = result;
}
// लंबवत (ऊपर)
if (i - 3 >= 0) {
result = arr[i][j] * arr[i-1][j] * arr[i-2][j] * arr[i-3][j];
if (max < result) max = result;
}
// मुख्य विकर्ण (ऊपर-बाएं)
if (i - 3 >= 0 && j - 3 >= 0) {
result = arr[i][j] * arr[i-1][j-1] * arr[i-2][j-2] * arr[i-3][j-3];
if (max < result) max = result;
}
// प्रतिविकर्ण (ऊपर-दाएं)
if (i - 3 >= 0 && j + 3 < n) {
result = arr[i][j] * arr[i-1][j+1] * arr[i-2][j+2] * arr[i-3][j+3];
if (max < result) max = result;
}
}
}
return max;
}
int main() {
int arr[][5] = {
{1, 2, 3, 4, 5},
{6, 7, 8, 9, 1},
{2, 3, 4, 5, 6},
{7, 8, 9, 1, 0},
{9, 6, 4, 2, 3}
};
cout << FindMaxProduct(arr, n);
return 0;
}
आउटपुट
3024