Паралелепіпеди (великі обмеження)

Перегляд у форматі PDF

Надіслати розв'язок

Бали: 5,00 (partial)
Time limit: 0.5s
Memory limit: 256M
Input: stdin
Output: stdout

Problem type

Ця задача відрізняється від попередньої задачі «Паралелепіпеди (середні обмеження)» лише обмеженнями на ~V~, ~S~.

Напишіть програму, яка знаходитиме перелік прямокутних паралелепіпедів, що мають об'єм ~V~ та площу поверхні ~S~. Враховувати лише паралелепіпеди, в яких всі три розміри виражаються натуральними числами.

Вхідні дані

Єдиний рядок містить розділені одинарним пробілом два натуральні числа ~V~ ~S~, обидва у межах від ~10^6~ (мільйон) до ~10^{18}~.

Результати

Кожен рядок повинен містити розділені пробілами цілочисельні розміри ~a~ ~b~ ~c~ чергового паралелепіпеда. Ці трійки обов'язково виводити у порядку зростання першого розміру ~a~, при рівних ~a~ – у порядку зростання другого розміру ~b~ (а різних відповідей, в яких рівні і ~a~, і ~b~, не буває).

У випадку, якщо жодного паралелепіпеда з потрібними ~V~, ~S~ не існує, виводьте єдиний рядок 0 0 0.

Примітки

Якщо прямокутний паралелепіпед має розміри ~a~ ~b~ ~c~, то його об'єм дорівнює ~{a\cdot b\cdot c}~, а площа поверхні ~{2\cdot\bigl(a{\cdot}b}+{b{\cdot}c}+{c{\cdot}a}\bigr)~, бо є дві грані (наприклад, передня й задня) площі ~{a{\cdot}b}~, дві (наприклад, ліва та права) площі ~{b{\cdot}c}~ та дві (наприклад, верхня й нижня) площі ~{c{\cdot}a}~.

Гарантовано, що у кожному з тестів, що використовуються для оцінювання цієї задачі, кількість трійок-відповідей строго менша 100.

Приклади

Вхід

54756000 1240200

Результат

120 585 780
120 780 585
130 360 1170
130 1170 360
180 195 1560
180 1560 195
195 180 1560
195 1560 180
360 130 1170
360 1170 130
585 120 780
585 780 120
780 120 585
780 585 120
1170 130 360
1170 360 130
1560 180 195
1560 195 180

Примітка

Легші для сприйняття людиною приклади див. у задачі «Паралелепіпеди (середні обмеження)».


Коментарі

Please read the guidelines before commenting.


Ще немає коментарів.