Олимпиадный тренинг

Задача . B. Таблица умножения


Саша подросла и пошла в первый класс. В честь этого события мама подарила ей таблицу умножения \(M\) с \(n\) строками и \(n\) столбцами, такую что \(M_{ij}=a_i \cdot a_j\), где \(a_1, \dots, a_n\) — некоторый массив целых положительных чисел.

Конечно же, девочка решила взять её с собой в школу. Но пока она обедала, хулиган Гриша стёр числа на главной диагонали и выкинул массив \(a_1, \dots, a_n\). Помогите Саше восстановить исходный массив!

Входные данные

Первая строка содержит одно целое число \(n\) (\(3 \leqslant n \leqslant 10^3\)) —размер таблицы умножения.

Каждая из следующих \(n\) строк содержит \(n\) целых чисел. \(j\)-е число в \(i\)-й строке содержит число \(M_{ij}\) (\(1 \leq M_{ij} \leq 10^9\)). На главной диагонали таблицы указаны нули, то есть, \(M_{ii}=0\).

Выходные данные

В единственной строке выведите \(n\) целых чисел, исходный массив \(a_1, \dots, a_n\) (\(1 \leq a_i \leq 10^9\)). Гарантируется, что ответ всегда существует. Если существует несколько решений, выведите любое из них.


Примеры
Входные данныеВыходные данные
1 5
0 4 6 2 4
4 0 6 2 4
6 6 0 3 6
2 2 3 0 2
4 4 6 2 0
2 2 3 1 2
2 3
0 99990000 99970002
99990000 0 99980000
99970002 99980000 0
9999 10000 9998

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя