কম্পিউটার টিউটোরিয়াল

C++-তে ম্যাট্রিক্সে A[i][j]=0 হলে ইন্ডেক্স পার্থক্য (i,j) এর সর্বোচ্চ মান বের করা


আমাদের একটি 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
  1. C++-এ ম্যাট্রিক্সে দিয়ে যোজন যোগফলের জোড়া খুঁজুন

  2. দেওয়া সমীকরণগুলোকে সन्तুষ্টকারী n ধনাত্মক পূর্ণসংখ্যা খুঁজে বের করা C++-এ

  3. দেওয়া শর্ত পূরণকারী সাবসেট গণনা C++-এ

  4. বাইনারি ট্রিতে সর্বোচ্চ সাব-ট্রি যোগফল যেটি BST ও (C++ প্রোগ্রাম)