# Check if sums of i-th row and i-th column are same in matrix

Last Updated : 24 Nov, 2022

Given a matrix mat[][], we have to check if the sum of i-th row is equal to the sum of i-th column or not.

Examples:

Input : 1 2 3 4
9 5 3 1
0 3 5 6
0 4 5 6
Output : Yes
Sums of 1st row = 10 and 1st column
are same, i.e., 10

Expected time complexity is O(m x n) where m is a number of rows and n is a number of columns.

The idea is really simple. We use a nested loop to calculate the sum of each row and column and then check whether their sum is equal or not.

The implementation of the above idea is given below.

## C++

 #include using namespace std; const int MAX = 100;   // Function to check the if sum of a row // is same as corresponding column bool areSumSame(int a[][MAX], int n, int m) {     int sum1 = 0, sum2 = 0;     for (int i = 0; i < min(n, m); i++) {         sum1 = 0, sum2 = 0;         for (int j = 0; j < min(n, m); j++) {             sum1 += a[i][j];             sum2 += a[j][i];         }         if (sum1 == sum2)             return true;     }     return false; }   // Driver Code int main() {     int n = 4; // number of rows     int m = 4; // number of columns     int M[n][MAX] = { { 1, 2, 3, 4 },                       { 9, 5, 3, 1 },                       { 0, 3, 5, 6 },                       { 0, 4, 5, 6 } };     cout << areSumSame(M, n, m) << "\n";     return 0; }

## Java

 // Java program to check if there are two // adjacent set bits. public class GFG {           // Function to check the if sum of a row     // is same as corresponding column     static boolean areSumSame(int a[][],                              int n, int m)     {         int sum1 = 0, sum2 = 0;         for (int i = 0; i < n; i++)         {             sum1 = 0;             sum2 = 0;             for (int j = 0; j < m; j++)             {                 sum1 += a[i][j];                 sum2 += a[j][i];             }                           if (sum1 == sum2)                 return true;         }                   return false;     }           // Driver code     public static void main(String args[])     {           int n = 4; // number of rows         int m = 4; // number of columns                   int M[][] = { { 1, 2, 3, 4 },                       { 9, 5, 3, 1 },                       { 0, 3, 5, 6 },                       { 0, 4, 5, 6 } };                                   if(areSumSame(M, n, m) == true)             System.out.print("1\n");         else             System.out.print("0\n");     } }   // This code is contributed by Sam007.

## Python3

 # Python3 program to check the if # sum of a row is same as # corresponding column MAX = 100;   # Function to check the if sum # of a row is same as # corresponding column def areSumSame(a, n, m):     sum1 = 0     sum2 = 0     for i in range(0, n):         sum1 = 0         sum2 = 0         for j in range(0, m):             sum1 += a[i][j]             sum2 += a[j][i]                   if (sum1 == sum2):             return 1           return 0   # Driver Code n = 4; # number of rows m = 4; # number of columns M = [ [ 1, 2, 3, 4 ],       [ 9, 5, 3, 1 ],       [ 0, 3, 5, 6 ],       [ 0, 4, 5, 6 ] ]         print(areSumSame(M, n, m))   # This code is contributed by Sam007.

## C#

 // C# program to check if there are two // adjacent set bits. using System;   class GFG {           // Function to check the if sum of a row     // is same as corresponding column     static bool areSumSame(int [,]a, int n, int m)     {         int sum1 = 0, sum2 = 0;         for (int i = 0; i < n; i++)         {             sum1 = 0;             sum2 = 0;             for (int j = 0; j < m; j++)             {                 sum1 += a[i,j];                 sum2 += a[j,i];             }                           if (sum1 == sum2)                 return true;         }                   return false;     }           // Driver code        public static void Main ()     {         int n = 4; // number of rows         int m = 4; // number of columns                   int [,] M = { { 1, 2, 3, 4 },                       { 9, 5, 3, 1 },                       { 0, 3, 5, 6 },                       { 0, 4, 5, 6 } };                                 if(areSumSame(M, n, m) == true)             Console.Write("1\n");         else             Console.Write("0\n");     } }   // This code is contributed by Sam007.



## Javascript



Output

1

Time Complexity: O(min(n, m) * min(n,m))
Auxiliary Space: O(1), since no extra space has been taken.