Related Articles
Count the number of pairs that have column sum greater than row sum
• Last Updated : 06 May, 2021

Given a matrix of size NxN. The task is to count the number of pair of indices (i, j) such that the sum of j-th column is greater than the sum of i-th row.
Examples:

```Input : N = 2, mat[][] = {{1, 2},
{3, 4}}
Output : 2
The 2 valid pairs are (1, 1) and (1, 2).

Input : N = 3, mat[][] = { { 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 } };
Output : 4```

Approach:
The idea is to pre-calculate the row sum and column sum for each row and column respectively and then count the number of possible valid pairs (i,j) such that column sum of j-th column is greater than the row sum for i-th row.
Below is the implementation of the above approach:

## C++

 `// C++ program to count the number of pairs``// (i,j) such that sum of elements in j-th column``// is greater than sum of elements in i-th row` `#include ``using` `namespace` `std;``#define N 3` `// Function to count the number of pairs``// (i,j) such that sum of elements in j-th column``// is greater than sum of elements in i-th row``int` `countPairs(``int` `a[N][N])``{``    ``// Initialize row sum and column``    ``// sum to zero``    ``int` `sumr[N] = { 0 }, sumc[N] = { 0 };``    ` `    ``// Calculate row sum and column sum``    ``for` `(``int` `i = 0; i < N; i++)``        ``for` `(``int` `j = 0; j < N; j++) {``            ``sumr[i] += a[i][j];``            ``sumc[j] += a[i][j];``        ``}``        ` `    ``int` `count = 0;``    ` `    ``// Count the number of pairs that are valid``    ``for` `(``int` `i = 0; i < N; i++)``        ``for` `(``int` `j = 0; j < N; j++)``            ``if` `(sumc[i] > sumr[j])``                ``count++;``                ` `    ``return` `count;``}` `// Driver Code``int` `main()``{``    ``int` `a[][N] = { { 1, 2, 3 },``                   ``{ 4, 5, 6 },``                   ``{ 7, 8, 9 } };``    ` `    ``cout << countPairs(a);``    ` `    ``return` `0;``}`

## Java

 `// Java program to count the number of pairs``// (i,j) such that sum of elements in j-th column``// is greater than sum of elements in i-th row``import` `java.io.*;` `class` `GFG``{``    ` `static` `int` `N = ``3``;` `// Function to count the number of pairs``// (i,j) such that sum of elements in j-th column``// is greater than sum of elements in i-th row``static` `int` `countPairs(``int` `a[][])``{``    ``// Initialize row sum and column``    ``// sum to zero``    ``int` `sumr[] = ``new` `int``[N] ;``    ``int` `sumc[] = ``new` `int` `[N] ;``    ` `    ``// Calculate row sum and column sum``    ``for` `(``int` `i = ``0``; i < N; i++)``        ``for` `(``int` `j = ``0``; j < N; j++)``        ``{``            ``sumr[i] += a[i][j];``            ``sumc[j] += a[i][j];``        ``}``        ` `    ``int` `count = ``0``;``    ` `    ``// Count the number of pairs that are valid``    ``for` `(``int` `i = ``0``; i < N; i++)``        ``for` `(``int` `j = ``0``; j < N; j++)``            ``if` `(sumc[i] > sumr[j])``                ``count++;``                ` `    ``return` `count;``}` `    ``// Driver Code``    ``public` `static` `void` `main (String[] args)``    ``{` `    ``int` `a[][] = { { ``1``, ``2``, ``3` `},``                ``{ ``4``, ``5``, ``6` `},``                ``{ ``7``, ``8``, ``9` `} };``    ` `    ``System.out.println (countPairs(a));``    ``}``}` `// This code is contributed by jit_t.`

## Python3

 `# Python 3 program to count the number of pairs``# (i,j) such that sum of elements in j-th column``# is greater than sum of elements in i-th row` `N ``=` `3` `# Function to count the number of pairs``# (i,j) such that sum of elements in j-th column``# is greater than sum of elements in i-th row``def` `countPairs(a):``    ` `    ``# Initialize row sum and column``    ``# sum to zero``    ``sumr ``=` `[``0` `for` `i ``in` `range``(N)]``    ``sumc ``=` `[``0` `for` `i ``in` `range``(N)]``    ` `    ``# Calculate row sum and column sum``    ``for` `i ``in` `range``(N):``        ``for` `j ``in` `range``(N):``            ``sumr[i] ``+``=` `a[i][j]``            ``sumc[j] ``+``=` `a[i][j]``        ` `    ``count ``=` `0``    ` `    ``# Count the number of pairs that are valid``    ``for` `i ``in` `range``(N):``        ``for` `j ``in` `range``(N):``            ``if` `(sumc[i] > sumr[j]):``                ``count ``+``=` `1``                ` `    ``return` `count` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ``a ``=` `[[``1``, ``2``, ``3``],[``4``, ``5``, ``6``], [``7``, ``8``, ``9``]]``    ` `    ``print``(countPairs(a))``    ` `# This code is contributed by``# Surendra_Gangwar`

## C#

 `// C# program to count the number of pairs``// (i,j) such that sum of elements in j-th column``// is greater than sum of elements in i-th row``using` `System;` `class` `GFG``{``    ` `static` `int` `N = 3;` `// Function to count the number``// of pairs (i,j) such that sum``// of elements in j-th column is``// greater than sum of elements in i-th row``static` `int` `countPairs(``int` `[,]a)``{``    ``// Initialize row sum and column``    ``// sum to zero``    ``int` `[]sumr = ``new` `int``[N] ;``    ``int` `[]sumc = ``new` `int` `[N] ;``    ` `    ``// Calculate row sum and column sum``    ``for` `(``int` `i = 0; i < N; i++)``        ``for` `(``int` `j = 0; j < N; j++)``        ``{``            ``sumr[i] += a[i, j];``            ``sumc[j] += a[i, j];``        ``}``        ` `    ``int` `count = 0;``    ` `    ``// Count the number of pairs that are valid``    ``for` `(``int` `i = 0; i < N; i++)``        ``for` `(``int` `j = 0; j < N; j++)``            ``if` `(sumc[i] > sumr[j])``                ``count++;``                ` `    ``return` `count;``}` `// Driver Code``public` `static` `void` `Main()``{` `    ``int` `[,]a = { { 1, 2, 3 },``                ``{ 4, 5, 6 },``                ``{ 7, 8, 9 } };``    ` `    ``Console.WriteLine(countPairs(a));``}``}` `// This code is contributed by Ryuga`

## Javascript

 ``
Output:
`4`

Time Complexity: O(N2)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with industry experts, please refer Geeks Classes Live and Geeks Classes Live USA

My Personal Notes arrow_drop_up