ধরি M x N আকারের একটি ম্যাট্রিক্স আছে। আমাদের সেই কলামটি বের করতে হবে যার যোগফল সর্বোচ্চ। এই প্রোগ্রামে আমরা কোনো ট্রিকি অ্যাপ্রোচ ফলো করব না, কলাম-ওয়াইজ ট্রাভার্স করে প্রতিটি কলামের যোগফল বের করব, যদি যোগফল সর্বোচ্চ হয় তবে সেটি ও কলাম ইনডেক্স প্রিন্ট করব।
উদাহরণ কোড
#include <iostream>
#define M 5
#define N 5
using namespace std;
int colSum(int colIndex, int mat[M][N]) {
int sum = 0;
for (int i = 0; i < M; i++) {
sum += mat[i][colIndex];
}
return sum;
}
void maxColumnSum(int mat[M][N]) {
int index = -1;
int maxSum = INT_MIN;
for (int i = 0; i < N; i++) {
int sum = colSum(i, mat);
if (sum > maxSum) {
maxSum = sum;
index = i;
}
}
cout << "Index: " << index << ", Column Sum: " << maxSum;
}
int main() {
int mat[M][N] = {
{ 1, 2, 3, 4, 5 },
{ 5, 3, 1, 4, 2 },
{ 5, 6, 7, 8, 9 },
{ 0, 6, 3, 4, 12 },
{ 9, 7, 12, 4, 3 },
};
maxColumnSum(mat);
}
আউটপুট
Index: 4, Column Sum: 31