Matrix sum except one item

Given a n*m matrix find the sum of the elements of the matrix without the element specified by its position

Examples:

Input : mat[] = {{1 2 4}, 
                {5 6 8}}
         cell = (0 2)
Output :22
We need to find sum of all elements
except mat[0][2].

Input : mat[][] = {{5 6 2 3}, {2 3 1 8}, {9 6 5 2}}
        cell = (1 2)
Output :51

A simple solution is to traverse through matrix. For every visited cell, check if it is the cell to be ignored.



C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find sum 
// of matrix except cell (x, y)
#include<bits/stdc++.h>
using namespace std;
  
// Dimension of input matrix
# define R 2
# define C 3
  
// Returns sum of arr[][]
// except cell arr[x][y]
int calcSum(int arr[R][C], 
            int x, int y)
{
    int sum = 0;
    for (int i = 0; i < R; i++)
    {
        for (int j = 0; j < C; j++)
        {
            if (i != x || j != y)
                sum = sum + arr[i][j];
        }
    }
    return sum;
}
  
// Driver code
int main()
{
    int x = 0, y = 2;
    int arr[R][C] = {1, 2, 4, 
                     5, 6, 8 };
                      
    cout << calcSum(arr, x, y);
}
  
// This code is contributed 
// by ChitraNayal

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to find sum of matrix except 
// cell (x, y)
class Matrix {
  
    // Returns sum of arr[][] except cell arr[x][y]
    static int calcSum(int[][] arr, int x, int y)
    {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
              if (i != x || j != y)
                sum = sum + arr[i][j];
            }
        }
        return sum;
    }
    public static void main(String[] args)
    {
        int x = 0, y = 2;
        int[][] arr = {
            { 1, 2, 4 }, { 5, 6, 8 },
        };
        System.out.println(calcSum(arr, x, y));
    }
}

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to find sum 
// of matrix except cell (x, y)
using System;
  
class GFG 
{
  
    // Returns sum of arr[,] 
    // except cell arr[x][y]
    static int calcSum(int[,] arr,
                       int x, int y)
    {
        int sum = 0;
        for (int i = 0; 
                 i < arr.GetLength(0); i++) 
        {
            for (int j = 0; 
                     j < arr.GetLength(1); j++) 
            {
            if (i != x || j != y)
                sum = sum + arr[i, j];
            }
        }
        return sum;
    }
      
    // Driver Code
    public static void Main()
    {
        int x = 0, y = 2;
        int[,] arr = {{ 1, 2, 4 }, 
                      { 5, 6, 8 }};
        Console.Write(calcSum(arr, x, y));
    }
}
  
// This code is contributed
// by ChitraNayal

chevron_right


Python 3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 program to find 
# sum of matrix except cell (x, y)
  
# Returns sum of arr[][]
# except cell arr[x][y]
def calcSum(arr, x, y):
    s = 0
    for i in range(R):
        for j in range(C):
            if (i != x or j != y):
                s = s + arr[i][j];
    return s;
  
# Driver code
x = 0
y = 2
arr = [[ 1, 2, 4 ],
       [ 5, 6, 8 ]]
R = 2
C = 3
  
print(calcSum(arr, x, y))
  
# This code is contributed 
# by ChitraNayal

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php 
// PHP program to find 
// sum of matrix except 
// cell (x, y)
$R = 2;
$C = 3;
  
// Returns sum of arr[][]
// except cell arr[x][y]
function calcSum(&$arr, $x, $y)
{
    global $R,$C;
    $sum = 0;
    for ($i = 0; $i < $R; $i++) 
    {
        for ($j = 0; $j < $C; $j++)
        {
            if ($i != $x || $j != $y)
                $sum = $sum + $arr[$i][$j];
        }
    }
    return $sum;
}
  
// Driver code
$x = 0;
$y = 2;
$arr = array(array(1, 2, 4),
             array(5, 6, 8));
          
echo (calcSum($arr, $x, $y)); 
  
// This code is contributed 
// by ChitraNayal
?>

chevron_right


Output:

22

The above solution causes an extra comparison for every matrix item. A better solution is to first find overall sum, then subtract given cell.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find sum 
// of matrix except cell (x, y)
#include<bits/stdc++.h>
using namespace std;
  
#define R 2
#define C 3
  
// Returns sum of arr[][] 
// except cell arr[x][y]
int calcSum(int arr[R][C], 
            int x, int y)
{
    int sum = 0;
    for (int i = 0; i < R; i++) 
        for (int j = 0; j < C; j++) 
            sum = sum + arr[i][j];
  
    return sum - arr[x][y];
}
  
// Driver code
int main()
{
    int x = 0, y = 2;
    int arr[R][C]= {1, 2, 4 ,
                    5, 6, 8 };
  
    cout << (calcSum(arr, x, y));
}
  
// This code is contributed
// by ChitraNayal

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to find sum of matrix except 
// cell (x, y)
class Matrix {
  
    // Returns sum of arr[][] except cell arr[x][y]
    static int calcSum(int[][] arr, int x, int y)
    {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) 
            for (int j = 0; j < arr[i].length; j++) 
                sum = sum + arr[i][j];
  
        return sum - arr[x][y];
    }
  
    public static void main(String[] args)
    {
        int x = 0, y = 2;
        int[][] arr = {
            { 1, 2, 4 }, { 5, 6, 8 },
        };
        System.out.println(calcSum(arr, x, y));
    }
}

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to find sum 
// of matrix except cell (x, y)
using System;
  
class GFG 
{
  
    // Returns sum of arr[,]
    // except cell arr[x,y]
    static int calcSum(int[,] arr, 
                       int x, int y)
    {
        int sum = 0;
        for (int i = 0; 
                 i < arr.GetLength(0); i++) 
            for (int j = 0; 
                     j < arr.GetLength(1); j++) 
                sum = sum + arr[i, j];
  
        return sum - arr[x, y];
    }
  
    // Driver code
    public static void Main()
    {
        int x = 0, y = 2;
        int[,] arr = {{ 1, 2, 4 }, 
                      { 5, 6, 8 }};
        Console.Write(calcSum(arr, x, y));
    }
}
  
// This code is contributed
// by ChitraNayal

chevron_right


Python 3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 program to find 
# sum of matrix except cell (x, y)
  
# Returns sum of arr[][] 
# except cell arr[x][y]
def calcSum( arr, x, y):
    s = 0
    for i in range(R): 
        for j in range(C): 
            s = s + arr[i][j]
  
    return s - arr[x][y]
  
# Driver code
x = 0
y = 2
R = 2
C = 3
arr = [[1, 2, 4 ],
       [5, 6, 8 ]]
  
print (calcSum(arr, x, y))
  
# This code is contributed 
# by ChitraNayal

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php 
// PHP program to find sum 
// of matrix except cell (x, y)
$R = 2;
$C = 3;
  
// Returns sum of $arr[][] 
// except cell $arr[$x][$y]
function calcSum(&$arr, $x, $y)
{
    global $R,$C;
    $sum = 0;
    for ($i = 0; $i < $R; $i++) 
        for ($j = 0; $j < $C; $j++) 
            $sum = $sum + $arr[$i][$j];
  
    return $sum - $arr[$x][$y];
}
  
// Driver code
$x = 0;
$y = 2;
$arr= array(array(1, 2, 4 ),
            array(5, 6, 8 ));
  
echo (calcSum($arr, $x, $y));
  
// This code is contributed
// by ChitraNayal
?>

chevron_right


Output:

22


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.



Improved By : chitranayal



Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.