# 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)

My Personal Notes arrow_drop_up