Загрузка данных


using System;

class Program
{
    static void Main()
    {
        Console.Write("Введите N: ");
        int n = int.Parse(Console.ReadLine());

        int[,] a = new int[n, n];

        Console.WriteLine("Введите матрицу построчно через пробел:");

        // Ввод матрицы
        for (int i = 0; i < n; i++)
        {
            string[] temp = Console.ReadLine().Split(' ');

            for (int j = 0; j < n; j++)
            {
                a[i, j] = int.Parse(temp[j]);
            }
        }

        int count = 0;
        int maxLocalMin = int.MinValue;
        bool found = false;

        // Смещения соседей
        int[] dx = { -1, -1, -1, 0, 0, 1, 1, 1 };
        int[] dy = { -1, 0, 1, -1, 1, -1, 0, 1 };

        // Поиск локальных минимумов
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                bool isLocalMin = true;

                for (int k = 0; k < 8; k++)
                {
                    int ni = i + dx[k];
                    int nj = j + dy[k];

                    // Проверка границ
                    if (ni >= 0 && ni < n && nj >= 0 && nj < n)
                    {
                        if (a[i, j] >= a[ni, nj])
                        {
                            isLocalMin = false;
                            break;
                        }
                    }
                }

                if (isLocalMin)
                {
                    count++;
                    found = true;

                    if (a[i, j] > maxLocalMin)
                    {
                        maxLocalMin = a[i, j];
                    }
                }
            }
        }

        Console.WriteLine("Количество локальных минимумов: " + count);

        if (found)
            Console.WriteLine("Максимум среди локальных минимумов: " + maxLocalMin);
        else
            Console.WriteLine("Локальных минимумов нет.");

        Console.ReadKey();
    }
}