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


using System;

class Program
{
    static void Main()
    {
        // --- 1. Ввод данных (как обычно, прямо в Main) ---
        Console.Write("Введите количество строк (n): ");
        int n = int.Parse(Console.ReadLine());
        
        Console.Write("Введите количество столбцов (m): ");
        int m = int.Parse(Console.ReadLine());

        int[,] A = new int[n, m];

        Console.WriteLine("\nВведите элементы матрицы:");
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                Console.Write($"A[{i},{j}] = ");
                A[i, j] = int.Parse(Console.ReadLine()); 
            }
        }

        // --- 2. Вызов нашего единственного метода ---
        // Передаем ему матрицу, а он возвращает нам готовый массив B
        int[] B = GetFirstNegatives(A, n, m);

        // --- 3. Вывод результата ---
        Console.WriteLine("\nМассив B (номера первых отрицательных элементов):");
        for (int i = 0; i < n; i++)
        {
            Console.Write(B[i] + " ");
        }
        Console.WriteLine();
    }

    // --- ЕДИНСТВЕННЫЙ МЕТОД: Ищет первые отрицательные элементы ---
    // Принимает матрицу (A), количество строк (n) и столбцов (m)
    // Возвращает массив с номерами (B)
    static int[] GetFirstNegatives(int[,] A, int n, int m)
    {
        int[] B = new int[n]; // Создаем пустой массив для ответов

        for (int i = 0; i < n; i++)
        {
            B[i] = 0; // По умолчанию ставим 0 (нет отрицательных)

            for (int j = 0; j < m; j++)
            {
                if (A[i, j] < 0) // Если нашли отрицательное число
                {
                    B[i] = j + 1; // Записываем его номер (j + 1)
                    break;        // И сразу выходим из цикла (нам же нужен только ПЕРВЫЙ)
                }
            }
        }
        return B; // Возвращаем готовый массив
    }
}