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

সি++-এ ম্যাট্রিক্সে কলামের যোগফল রোয়ের যোগফলের চেয়ে বড় হয় এমন ইনডেক্স পেয়ার গণনা

NxN আকারের একটি ম্যাট্রিক্স দেওয়া আছে। লক্ষ্য হল বৈধ ইনডেক্স পেয়ার (i,j) গণনা করা যাতে কলাম j-এর উপাদানগুলোর যোগফল রোয় i-এর উপাদানগুলোর যোগফলের চেয়ে বড়।

ম্যাট্রিক্স ট্রাভার্স করে প্রতিটি রোয় এবং কলামের উপাদানগুলোর যোগফল বের করা হয়। রোয়ের যোগফল rowsum[N]-এ এবং কলামের যোগফল colsum[N]-এ সংরক্ষণ করা হয়। তারপর rowsum[i] এবং colsum[j] দিয়ে পেয়ার বানিয়ে colsum[j] > rowsum[i] কিনা চেক করা হয়। সত্য হলে count বাড়ানো হয়।

উদাহরণ

ইনপুট:

matrix = {
    { 1,2,0,1},
    { 3,3,0,2},
    { 1,3,0,2},
    { 3,0,0,2}
};

আউটপুট: বৈধ পেয়ার সংখ্যা: ৯

ব্যাখ্যা:

Rowsum[0]=5, Colsum[0]=8
Rowsum[1]=8, Colsum[1]=8
Rowsum[2]=6, Colsum[2]=0
Rowsum[3]=5, Colsum[3]=7
Rowsum[i] < Colsum[j] হয় এমন (i,j) পেয়ার: (0,0), (0,1), (0,3), (2,0), (2,1), (2,3), (3,0), (3,1), (3,3)

ইনপুট:

Arr[] = { {1,1,1}, {1,1,1}, {1,1,1} }, N=3

আউটপুট: বৈধ পেয়ার সংখ্যা: ০

ব্যাখ্যা: সব রোয় এবং কলামের যোগফল ৩। rowsum[i] < colsum[j] হয় এমন কোনো পেয়ার নেই।

অ্যাপ্রোচ

  • ইন্টিজার অ্যারে Arr[][] নেওয়া হয়।
  • n ভেরিয়েবলে দৈর্ঘ্য।
  • countPairs(int arr[][3], int n) ফাংশন ম্যাট্রিক্স এবং আকার গ্রহণ করে বৈধ পেয়ার সংখ্যা রিটার্ন করে।
  • rowsum[n] এবং colsum[n] দুটি অ্যারে নেওয়া হয়।
  • ম্যাট্রিক্স ট্রাভার্স করে arr[i][j] rowsum[i]-এ এবং colsum[j]-এ যোগ করা হয়।
  • দুটি for লুপ দিয়ে colsum[] এবং rowsum[] ট্রাভার্স করে colsum[j] > rowsum[i] হলে count বাড়ানো হয়।

উদাহরণ কোড

#include <bits/stdc++.h>
using namespace std;

int countPairs(int arr[][3], int n) {
    int count = 0;
    int rowsum[n] = {0};
    int colsum[n] = {0};
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            rowsum[i] += arr[i][j];
            colsum[j] += arr[i][j];
        }
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++)
            if (colsum[j] > rowsum[i])
                count++;
    }
    return count;
}

int main() {
    int Arr[][3] = { {1,3,5}, {2,4,6}, {3,5,7} };
    int side = 3;
    cout << endl << "Count of number of pairs : " << countPairs(Arr, side);
    return 0;
}

আউটপুট

Count of number of pairs : 4
  1. C++ ব্যবহার করে K-এর চেয়ে কম যোগফল वाले সাবঅ্যারে সংখ্যা খুঁজুন

  2. সি++-এ N-এর চেয়ে ছোট এবং N-এর ডিজিট সমষ্টির চেয়ে বড় ডিজিট সমষ্টি वाली সংখ্যা

  3. ফিবোনাচ্চি সংখ্যা যেন করা নোডের ওজন এবং X-এর যোগফল C++-এ

  4. C++-এ প্রতিটি সারি থেকে একটি সংখ্যা নির্বাচন করে XOR শূন্য থেকে বড় হয় কিনা চেক করা