আমাদের একটি n x n সাইজের ম্যাট্রিক্স দেওয়া আছে এবং শর্ত হলো a[i][j] = 0। টাস্ক হলো এই শর্ত পূরণ করা ইন্ডেক্স পার্থক্যের (|i-j|) সর্বোচ্চ মান বের করা। তাই ম্যাট্রিক্সে কমপক্ষে একটি শূন্য থাকতে হবে।
ইনপুট
int matrix[][] = {
{0, 1, 1},
{0, 0, 0},
{4, 5, 1}
}
আউটপুট − Maximum difference of indices (i, j) such that A[i][j] = 0 is: 1
ব্যাখ্যা − ০ আছে matrix[0][0], matrix[1][0], matrix[1][1], matrix[1][2]-এ। সর্বোচ্চ পার্থক্য matrix[1][0]-এ (|1-0|=1)।
ইনপুট
int matrix[][] = {
{0, 1, 1},
{0, 2, 9},
{4, 0, 1}
}
আউটপুট − Maximum difference of indices (i, j) such that A[i][j] = 0 is: 1
ব্যাখ্যা − ০ আছে [0][0], [1][0], [2][1]-এ। সর্বোচ্চ পার্থক্য ১ (|1-0| বা |2-1|)।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- ম্যাট্রিক্স ইনপুট নিন (কমপক্ষে একটি ০ থাকতে হবে)।
- রো এবং কলামের ম্যাক্সিমাম সাইজ ডিফাইন করুন।
- একটি টেম্পোরারি ভ্যারিয়েবল দিয়ে সর্বোচ্চ পার্থক্য সংরক্ষণ করুন।
- নেস্টেড লুপ দিয়ে সব ইন্ডেক্স চেক করুন।
- যদি
matrix[i][j] == 0হয়, তবেmax_val = max(max_val, abs(i-j))করুন। - সর্বোচ্চ মান রিটার্ন ও প্রিন্ট করুন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
#define ROW 3
#define COL 3
int maximum(int matrix[ROW][COL]) {
int max_val = 0;
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
if (matrix[i][j] == 0) {
max_val = max(max_val, abs(i - j));
}
}
}
return max_val;
}
int main() {
int matrix[ROW][COL] = {
{1, 2, 0},
{0, 4, 0},
{0, 1, 0}
};
cout << "Maximum difference of indices with A[i][j] = 0 is: " << maximum(matrix);
return 0;
}
আউটপুট
Maximum difference of indices with A[i][j] = 0 is: 2