Интересно, делимся)
Отнимаем от всех элементов матрицы А целые числа, так, чтобы перевести их в диапазон [0,1), соответственно из сумм строк и столбцов отнимаем суммы отнятых чисел. Получается эквивалентная задача, то есть расстановка округлений в данной задаче совпадает с расстановкой в искомой. Полученную матрицу обозначим Б.Теперь нужно понять, где в матрице нужно поставить округления сверху, но на нулях их ставить нельзя. Решение дадим в виде матрицы Х таких же размеров, где ижитый элемент равняется единице, если тот же элемент был округлён сверху в матрице Б.
Получается, что в матрице Х нужно расставить в каждых строках и столбцах соответствующее число единиц, причем некоторые клетки недопустимые. Помню, что данная задача решена, и есть алгоритм, но не помню какой.