using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CyberForum
{
class Program
{
static int[,] Create(int[,] arr)
{
Random r = new Random();
for (int k = 0; k < arr.GetLength(0); k++)
for (int p = 0; p < arr.GetLength(1); p++)
{
arr[k, p] = r.Next(0, 21);
}
return arr;
}
static int[] SearchMin(int[,] arr)
{
int[] Min = new int[arr.GetLength(0)];
int min;
for (int k = 0; k < arr.GetLength(0); k++)
{
min = arr[k, 0];
for (int p = 0; p < arr.GetLength(1); p++)
{
if (min > arr[k, p])
min = arr[k, p];
}
Min[k] = min;
}
return Min;
}
static int[] SearchMax(int[,] arr)
{
int[] Max = new int[arr.GetLength(1)];
int max;
for (int p = 0; p < arr.GetLength(1); p++)
{
max = arr[0, p];
for (int k = 0; k < arr.GetLength(0); k++)
{
if (max < arr[k, p])
max = arr[k, p];
}
Max[p] = max;
}
return Max;
}
static void Print(int[,] arr)
{
for (int k = 0; k < arr.GetLength(0); k++)
{
for (int p = 0; p < arr.GetLength(1); p++)
{
Console.Write(arr[k, p] + " ");
}
Console.WriteLine();
}
}
static void Search(int[,] arr, int[] min, int[] max)
{
int flag = 0;
for (int k = 0; k < arr.GetLength(0); k++)
{
for (int p = 0; p < arr.GetLength(1); p++)
{
if (arr[k, p] == min[k] && arr[k, p] == max[p])
{
flag++;
Console.WriteLine("Седловая точка " + arr[k, p]);
Console.WriteLine("Строка: " + k);
Console.WriteLine("Столбец: " + p);
}
}
}
if (flag == 0)
{
Console.WriteLine("Седловых точек нет");
}
}
static void Main(string[] args)
{
Console.Write("m = ");
int m = Convert.ToInt32(Console.ReadLine());
Console.Write("n = ");
int n = Convert.ToInt32(Console.ReadLine());
int[,] A = new int[m, n];
Create(A);
Print(A);
int[] max = SearchMax(A);
int[] min = SearchMin(A);
Search(A, min, max);
Console.ReadKey();
}
}
}