0061. Загрузка оборудования

Input file name: equip.in
Output file name: equip.out
Time limit: 2 s
Memory limit: 64 megabytes

Вася проходит производственную практику в вычислительной лаборатории университета, где обслуживает сложнейшую мультипроцессорную систему, параллельно решающую m задач для нужд университета и m – для нужд организаций-подрядчиков. Работы выполняет суперкомпьютер, m*m процессоров которого составляют матрицу из m строк и m столбцов. Процессоры специализированы, поэтому их производительность неодинакова. Она выражается целым числом aij миллионов операций в секунду, выполняемых процессором (i,j).

Для решения каждой из <<внутриуниверситетских>> задач с номером i∈1..m требуются все процессоры с номерами (i,j) j∈1..m, причем все они в равной степени загружены этой задачей (т. е. на каждом из этих процессоров этой задачей выполняется одинаковое число операций в секунду), для решения внешней задачи j∈1..m задействуются процессоры (i,j) i∈1..m тем же образом.

Помогите Васе распределить процессорное время между задачами так, чтобы суммарная производительность системы по всем задачам была наибольшей.

Формат входного файла

Первая строка исходного файла содержит число 1≤ m≤ 100 – размерность матрицы суперкомпьютера, последующие m строк – производительности процессоров.

Формат выходного файла

Первая строка вывода содержит искомую суммарную загрузку системы задачами. Вторая строка содержит m чисел, разделенных пробелами – i-ое число есть число миллионов операций, выполняемых i-ой университетской задачей на каждом из процессоров (i,j) (напомним, что для различных j эти числа совпадают). Третяя строка содержит аналогичную информацию о задачах организаций-подрядчиков. Все числа следует выводить с 6 знаками после запятой.

Пример:

equip.inequip.out
3 4 5 6 5 7 9 6 9 1219.000000 3.000000 5.000000 6.000000 0.000000 2.000000 3.000000


Source: Petrozavodsk Winter 2003. Take-Off, Monday, February 03

Discuss       Submit a solution



Printable version