Кубічне рівняння
Перегляд у форматі PDFКубічне рівняння ~ax^3+bx^2+cx+d=0~ задане чотирма своїми коефіцієнтами ~a~, ~b~, ~c~, ~d~ (~a\neq 0~). Як відомо, кубічне рівняння завжди має хоча б один дійсний корінь, а максимальна кількість різних дійсних коренів дорівнює 3. Напишіть програму, яка знайде усі дійсні корені кубічного рівняння.
Вхідні дані
В одному рядку через пропуски (пробіли) задано чотири числа ~a~, ~b~, ~c~, ~d~ — коефіцієнти рівняння. Усі чотири коефіцієнти є цілими числами, що не перевищують за модулем 1000, при цьому ~a\neq 0~ (решта коефіцієнтів можуть бути в тому числі й нулями).
Результати
Виведіть в один рядок через пробіли (пропуски) усі дійсні корені рівняння. Якщо рівняння має менше, ніж три, корені, дозволяється деякі з них повторити, але так, щоб:
- сумарна кількість виведених чисел була не більша трьох;
- кожне з виведених чисел було коренем рівняння (дозволяється абсолютна та/або відносна похибка до ~10^{-6}~);
- кожен з коренів був виведений хоча б один раз.
Приклади
Ввід
1 -3 3 -1
Вивід
1
Ввід
1 -6 11 -6
Вивід
1 2 3
Примітки
Правила зарахування відповідей слід сприймати буквально. Наприклад, у першому прикладі зараховуються також відповіді, де 1 виведена двічі чи тричі. Більш того, зараховується також відповідь з трьома «різними» коренями 1, 1.000000001 та 0.999999999. А три різні корені 1, 1.001 та 0.999 вже не зараховуються, бо похибка перевищує дозволену. А чотири «різні» корені 1, 1.0000000001, 1.0000000002 та 0.999999999 не зараховуються не через похибки, а через те, що їх чотири, а дозволено максимум три.
Коментарі