এই সমস্যাতে, আমাদের N*N আকারের একটি ম্যাট্রিক্স mat[][] দেওয়া আছে। আমাদের কাজ হলো ম্যাট্রিক্সে সর্বোচ্চ যোগফল वाली সারি (row) বের করা।
উদাহরণ দিয়ে সমস্যা বোঝা যাক,
ইনপুট
mat[][] = {
8, 4, 1, 9
3, 5, 7, 9
2, 4, 6, 8
1, 2, 3, 4
}
আউটপুট
Row 2, sum 24
ব্যাখ্যা
Row 1: sum = 8+4+1+9 = 22 Row 2: sum = 3+5+7+9 = 24 Row 3: sum = 2+4+6+8 = 20 Row 4: sum = 1+2+3+4 = 10
সমাধানের পদ্ধতি
এই সমস্যার একটি সহজ সমাধান হলো প্রতিটি সারির উপাদানগুলোর যোগফল বের করা এবং সর্বোচ্চ যোগফল ট্র্যাক (track) করা। তারপর সব সারি ট্রাভার্স করার পর সর্বোচ্চ যোগফল वाली সারি রিটার্ন করা।
সমাধান কোড:
উদাহরণ
#include <iostream>
using namespace std;
#define R 4
#define C 4
void findMax1Row(int mat[R][C]) {
int maxSumRow = 0, maxSum = -1;
int i, index;
for (i = 0; i < R; i++) {
int sum = 0;
for(int j = 0; j < C; j++){
sum += mat[i][j];
}
if(sum > maxSum){
maxSum = sum;
maxSumRow = i;
}
}
cout<<"Row : "<<(maxSumRow+1)<<" has the maximum sum which is "<<maxSum;
}
int main() {
int mat[R][C] = {
{8, 4, 1, 9},
{3, 5, 7, 9},
{2, 4, 6, 8},
{1, 2, 3, 4}
};
findMax1Row(mat);
return 0;
}
আউটপুট
Row : 2 has the maximum sum which is 24