Пересдача автоматизированого зачета

В текстовом файле записана матрица действительных чисел. Формат данных: два натуральных числа n и m, задающих соответственно число строк и столбцов матрицы, и последовательность действительных чисел, соответствующая записи матрицы по столбцам.

Требуется найти строчку матрицы, удовлетворяющую заданному условию (если условию удовлетворяет несколько строк матрицы, то выбираем строку с минимальным номером), выполнить указанное преобразовании матрицы, и напечатать получившуюся матрицу с сохранением формата входного файла.

Варианты заданий. Номер задачи получается приписыванием номера варианта для выбора строки к номеру варианта для преобразования матрицы.

Условие выбора строки матрицы
  1. Позиция (индекс) максимального элемента в строке минимальна (в других строках максимальный элемент стоит правее).
  2. Сумма элементов строки, которые по модулю превосходят первый элемент строки, максимальна (для других строк такая сумма не больше).
  3. Сумма элементов строки, которые превосходят среднее арифметическое элементов строки, минимальна (для других строк такая сумма не меньше).
  4. Произведение элементов строки, которые превосходят среднее арифметическое элементов строки, максимально (для других строк такое произведение не больше).
Преобразование матрицы
  1. Переставить столбцы матрицы таким образом, что значения в строке k не убывают, где k - индекс строки, выбранной по первому условию.
  2. Переставить строки матрицы таким образом, что скалярное произведение с выбранной строкой не убывает.
Матрица должна быть представлена ОДНОМЕРНЫМ массивом.

Номера заданий: Атовмян 11, Бондарев 31, Вишневский 22, Нестеров 12, Панков 32, Саральпов 21, Федоровский 41, Шаламов 42.

Время: до 19:00.

Требования к решению: ввод-вывод матрицы должен быть отделён от её обработки, преобразование матрицы должно быть реализовано в виде отдельной функции; функция преобразования матрицы должна модифицировать матрицу, а не создавать новую; функции должны быть снабжены документацией; память для хранения матрицы A должна выделяться в минимально необходимом объёме; не должно быть утечек памяти и других ошибок valgrind; программа должна обрабатывать возможные ошибки (отсутствие файла, ошибки чтения, несоответствия формату и т.п.).

Процедура сдачи. Выкладываете своё решение в github. Директория (в вашей директории проекта) должна называться zachet3. После выкладывания решения говорите об этом в zoom (или пишете письмо).

Результаты Нестеров (зачет), Саральпов (зачет), Бондарев (зачет), Федоровский (зачет).