import random as r def search_matrix(matrix, K): """ Поиск числа K в матрице """ if not matrix or not matrix[0]: return False, 0 N = len(matrix) M = len(matrix[0]) row = 0 col = M - 1 steps = 0 while row < N and col >= 0: steps += 1 current = matrix[row][col] if current == K: return True, steps elif current > K: col -= 1 else: row += 1 return False, steps def generate_matrix(N, M): """ Генерирует матрицу N x M со случайными числами """ matrix = [[0] * M for g in range(N)] matrix[0][0] = r.randint(1, 10) for j in range(1, M): matrix[0][j] = matrix[0][j-1] + r.randint(1, 8) for i in range(1, N): for j in range(M): min_val = matrix[i-1][j] if j > 0: min_val = max(min_val, matrix[i][j-1]) matrix[i][j] = min_val + r.randint(1, 8) return matrix def print_matrix(matrix): """Красивый вывод матрицы""" for row in matrix: print("\t".join(map(str, row))) def main(): try: N = int(input("Введите количество строк N: ")) M = int(input("Введите количество столбцов M: ")) except ValueError: print("Ошибка: введите целые числа") return if N <= 0 or M <= 0: print("Размеры матрицы должны быть положительными") return matrix = generate_matrix(N, M) print("\nСгенерированная матрица:") print_matrix(matrix) try: K = int(input("\nВведите число для поиска: ")) except ValueError: print("Ошибка: введите целое число") return found, steps = search_matrix(matrix, K) if found: print(f"Число {K} найдено! Количество шагов: {steps}") else: print(f"Число {K} не найдено. Количество шагов: {steps}") if __name__ == "__main__": main()