Related Articles
Row-wise common elements in two diagonals of a square matrix
• Difficulty Level : Easy
• Last Updated : 14 Jun, 2018

Given a square matrix, find out count of numbers that are same in same row and same in both primary and secondary diagonals.

Examples :

```Input : 1 2 1
4 5 2
0 5 1
Output : 2
Primary diagonal is 1 5 1
Secondary diagonal is 1 5 0
Two elements (1 and 5) match
in two diagonals and same.

Input : 1 0 0
0 1 0
0 0 1
Output : 1
Primary diagonal is 1 1 1
Secondary diagonal is 0 1 0
Only one element is same.
```

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

We can achieve this in O(n) time, O(1) space and only one traversal. We can find current element in i-th row of primary diagonal as mat[i][i] and i-th element of secondary diagonal as mat[i][n-i-1].

## C++

 `// CPP program to find common elements in ` `// two diagonals. ` `#include ` `#define MAX 100 ` `using` `namespace` `std; ` ` `  `// Returns count of row wise same ` `// elements in two diagonals of ` `// mat[n][n] ` `int` `countCommon(``int` `mat[][MAX], ``int` `n) ` `{ ` `    ``int` `res = 0; ` `    ``for` `(``int` `i=0;i

## Java

 `// Java program to find common  ` `// elements in two diagonals. ` `import` `java.io.*; ` ` `  `class` `GFG ` `{ ` `    ``int` `MAX = ``100``; ` `     `  `    ``// Returns count of row wise same elements  ` `    ``// in two diagonals of mat[n][n] ` `    ``static` `int` `countCommon(``int` `mat[][], ``int` `n) ` `    ``{ ` `        ``int` `res = ``0``; ` `        ``for` `(``int` `i = ``0``; i < n; i++) ` `            ``if` `(mat[i][i] == mat[i][n - i - ``1``]) ` `                ``res++; ` `        ``return` `res; ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `main(String args[])``throws` `IOException ` `    ``{ ` `        ``int` `mat[][] = {{``1``, ``2``, ``3``},  ` `                       ``{``4``, ``5``, ``6``}, ` `                       ``{``7``, ``8``, ``9``}}; ` `        ``System.out.println(countCommon(mat, ``3``)); ` `    ``} ` `} ` ` `  `// This code is contributed by Anshika Goyal. `

## Python3

 `# Python3 program to find common  ` `# elements in two diagonals. ` ` `  `Max` `=` `100` ` `  `# Returns count of row wise same ` `# elements in two diagonals of ` `# mat[n][n] ` `def` `countCommon(mat, n): ` `    ``res ``=` `0` `     `  `    ``for` `i ``in` `range``(n): ` `         `  `        ``if` `mat[i][i] ``=``=` `mat[i][n``-``i``-``1``] : ` `            ``res ``=` `res ``+` `1` `    ``return` `res      ` ` `  `# Driver Code ` `mat ``=` `[[``1``, ``2``, ``3``], ` `       ``[``4``, ``5``, ``6``], ` `       ``[``7``, ``8``, ``9``]] ` ` `  `print``(countCommon(mat, ``3``)) ` ` `  `# This code is contributed by Anant Agarwal. `

## C#

 `// C# program to find common  ` `// elements in two diagonals. ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``// Returns count of row wise same ` `    ``// elements in two diagonals of ` `    ``// mat[n][n] ` `    ``static` `int` `countCommon(``int` `[,]mat, ``int` `n) ` `    ``{ ` `        ``int` `res = 0; ` `         `  `        ``for` `(``int` `i = 0; i < n; i++) ` `            ``if` `(mat[i,i] == mat[i,n - i - 1]) ` `                ``res++; ` `                 `  `        ``return` `res; ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `[,]mat = {{1, 2, 3},  ` `                      ``{4, 5, 6}, ` `                      ``{7, 8, 9}}; ` `        ``Console.WriteLine(countCommon(mat, 3)); ` `    ``} ` `} ` ` `  `// This code is contributed by vt_m. `

## PHP

 ` `

Output :

```  1
```

This article is contributed by Himanshu Ranjan. 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.