কম্পিউটার

C++ এ সারির যোগফলের চেয়ে বেশি কলামের যোগফল আছে এমন জোড়ার সংখ্যা গণনা করুন


আমাদের NXN আকারের একটি ম্যাট্রিক্স দেওয়া হয়েছে৷ লক্ষ্য হল সমস্ত বৈধ জোড়া ইনডেক্সের (i,j) গণনা খুঁজে বের করা যাতে কলাম j-এর যোগফল সারির উপাদানগুলির যোগফলের থেকে বেশি হয়৷

আমরা ম্যাট্রিক্স অতিক্রম করে এটি করব এবং প্রতিটি সারি এবং কলামের উপাদানগুলির যোগফল গণনা করব৷

রোসাম[N]-এ প্রতিটি উপাদানের যোগফল এবং কলসাম[N]-এ প্রতিটি কলামের উপাদানের যোগফল সংরক্ষণ করুন।

এখন rowsum[i] এবং colsum[j] এর জোড়া তৈরি করুন এবং colsum[j]>rowsum[i] কিনা তা পরীক্ষা করুন। যদি এই ধরনের জোড়ার জন্য সত্যিকারের বৃদ্ধির সংখ্যা।

উদাহরণ দিয়ে বোঝা যাক।

Input-: matrix= {
   { 1,2,0,1},
   { 3,3,0,2},
   { 1,3,0,2},
   { 3,0,0,2} 
};

আউটপুট − বৈধ জোড়ার সংখ্যা − 9

ব্যাখ্যা

Rowsum[0]= 1+2+0+1=5 Colsum[0]= 1+3+1+3=8
Rowsum[1]=3+3+0+2=8 Colsum[1]= 2+3+3+0=8
Rowsum[2]= 1+3+0+2=6 Colsum[2]= 0+0+0+0=0
Rowsum[3]=3+0+0+2=5 Colsum[3]= 1+2+2+2=7
Pairs of (i,j) such that rowsum[i] < colsum[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

আউটপুট − বৈধ জোড়ার সংখ্যা − 0

ব্যাখ্যা

Rowsum[0]= 1+1+1=3 Colsum[0]= 1+1+1=3
Rowsum[1]= 1+1+1=3 Colsum[1]= 1+1+1=3
Rowsum[2]= 1+1+1=3 Colsum[2]= 1+1+1=3
No pairs possible where rowsum[i]<colsum[j]

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

  • আমরা একটি পূর্ণসংখ্যার অ্যারে নিই Arr[] এলোমেলো সংখ্যার সাথে শুরু।

  • একটি পরিবর্তনশীল n নিন যা Arr[] এর দৈর্ঘ্য সংরক্ষণ করে।

  • ফাংশন কাউন্টপেয়ার্স(int arr[], int n) একটি অ্যারে নেয়, এর দৈর্ঘ্য ইনপুট হিসাবে এবং সেই জোড়া ফেরত দেয় যা বৈধ এবং কাঙ্খিত শর্ত পূরণ করে।

  • আমরা দুটি অ্যারে rowsum[n] এবং colsum[n] নিই।

  • ম্যাট্রিক্স অতিক্রম করুন এবং সারি i এবং কলাম j এর যোগফল গণনা করতে rowsum[i] এবং colsum[j]-এ arr[i][j] যোগ করুন।

  • এখন লুপের জন্য দুটি ব্যবহার করে colsum[] এবং rowsum[] অ্যারেগুলিকে অতিক্রম করুন৷

  • যদি কোন colsum[j]>rowsum[i] হয়। সংখ্যা বৃদ্ধি।

  • ফলাফল হিসাবে গণনা ফেরত দিন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int countPairs(int arr[][3], int n){
   // Count of pairs
   int count = 0;
   int rowsum[n]={0};
   int colsum[n]={0};
   int i,j;
   for (i = 0; i < n; i++){
      for (j = 0; j < n; j++){
         rowsum[i]+=arr[i][j];
         colsum[j]+=arr[i][j];
      }
   }
   for(i=0;i<n;i++){
      for(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. C++ এ N-এর অঙ্কের যোগফলের চেয়ে বড় অঙ্কের যোগফলের সাথে N-এর চেয়ে কম বড় সংখ্যা

  3. নোডগুলি গণনা করুন যার সমষ্টি X এর সাথে C++ এ একটি ফিবোনাচি সংখ্যা

  4. প্রতিটি সারি থেকে এমন একটি সংখ্যা নির্বাচন করা যায় কিনা পরীক্ষা করুন যাতে সংখ্যার xor C++ এ শূন্যের চেয়ে বেশি হয়