using System;
using System.Collections.Generic;
class CommonElementMatrix
{
public static int FindCommonElementInMatrixRows(int[,] matrix) {
Dictionary<int, int> map = new Dictionary<int, int>();
int rows = matrix.GetLength(0);
int cols = matrix.GetLength(1);
for (int i = 0; i < rows; i++) {
map[matrix[i, 0]] = map.ContainsKey(matrix[i, 0]) ? map[matrix[i, 0]] + 1 : 1;
for (int j = 1; j < cols; j++) {
if (matrix[i, j] != matrix[i, j - 1]) {
int val = matrix[i, j];
map[val] = map.ContainsKey(val) ? map[val] + 1 : 1;
}
}
}
foreach (var entry in map) {
if (entry.Value == rows) {
return entry.Key;
}
}
return -1;
}
static void Main()
{
int[,] matrix = new int[,]
{
{1, 2, 3, 5, 36},
{4, 5, 7, 9, 10},
{5, 6, 8, 9, 18},
{1, 3, 5, 8, 24}
};
int result = FindCommonElementInMatrixRows(matrix);
if (result != -1) {
Console.WriteLine("Common element in all rows: " + result);
}
else {
Console.WriteLine("No common element found in all rows.");
}
}
}
/*
run:
Common element in all rows: 5
*/