একটি স্কোয়ার ম্যাট্রিক্স দেওয়া আছে। প্রিন্সিপাল ও সেকেন্ডারি ডায়াগোনালের সমের সাথে মিলে যাওয়া রো ও কলামের সংখ্যা গণনা করুন।
উদাহরণ
ম্যাট্রিক্স: {{4,1,7}, {10,3,5}, {2,2,11}}
প্রিন্সিপাল ডায়াগোনাল সম: 4+3+11=18
সেকেন্ডারি ডায়াগোনাল সম: 7+3+2=12
রো সম: 12, 18, 15 → ২টি মিলে (১২, ১৮)
কলাম সম: 16, 6, 23 → ০টি মিলে
আউটপুট: 2
C++ বাস্তবায়ন
#include <iostream>
#define ROW 3
#define COL 3
using namespace std;
int diagonal_sum(int matrix[ROW][COL]) {
int principal = 0, secondary = 0;
for (int i = 0, j = COL-1; i < COL; i++, j--) {
principal += matrix[i][i];
secondary += matrix[i][j];
}
int count = 0;
for (int i = 0; i < COL; i++) {
int r = 0, c = 0;
for (int j = 0; j < COL; j++) {
r += matrix[i][j];
c += matrix[j][i];
}
if (r == principal || r == secondary) count++;
if (c == principal || c == secondary) count++;
}
return count;
}
int main() {
int matrix[ROW][COL] = {{4,1,7},{10,3,5},{2,2,11}};
cout << "Count: " << diagonal_sum(matrix);
return 0;
}
সময় জটিলতা
O(n²) - ম্যাট্রিক্স ট্রাভার্সাল। স্পেস O(1)।