ЗАДАЧА 102: Назовем весом столбца матрицы число, равное сумме модулей разностей соседних элементов этого столбца, т.е. |a[i][j] - a[i+1][j]| для i=0,...,N-2. В матрице должно присутствовать хотя бы два столбца. Требуется переставить столбцы матрицы так, чтобы они стояли по убыванию (невозрастанию) своих весов (при возрастании номера столбца). После этого надо вычислить произведение полученной матрицы A на ее транспонированную первую строку b, т.е. получить вектор c=Ab. Полученные матрицу и вектор вывести в файл output.txt. Матрица вещественных чисел задается в файле input.txt. В этом файле сначала записаны два целых числа N --- число строк и M --- число столбцов матрицы, а далее сама матрица по строкам (строка матрицы в строке файла). Ответ к задаче надо вывести в такой же форме в файл output.txt, т.е. сначала размерности матрицы, а потом по строкам саму переупорядоченную матрицу. После этого надо вывести пустую строку и далее вектор, являющийся требуемым произведением матрицы на вектор. Если при вводе данных будут обнаружены некорректные ситуации (файлы не открылись, они пустые, есть ошибки чтения, некорректные размерности, недостаточное количество элементов матрицы и т.п.), то считается, что задачу решить нельзя, и функция main должна завершиться с возвращаемым значением -1. Если задача решена корректно, то функция main должна возвратить значение 0. При решении задачи память для хранения матрицы выделяется динамически и только для этой матрицы и вектора --- результата произведения матрицы на вектор-строку. Выделять динамически или статически другие дополнительные массивы для промежуточных вычислений не разрешается. По окончании реботы вся выделенная память должна быть освобождена (memory leak не допускается).