# Count the number of pairs that have column sum greater than row sum

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
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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  `

Output:

```4
```

Time Complexity: O(N2)

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.