#include #include #include #include #include int solve_testcase() { intmax_t a, b, c; scanf("%jd %jd %jd", &a, &b, &c); if (a != 0) { if (b < 0) { a = -a; b = -b; c = -c; } __int128 d = b*b - __int128(4)*a*c; if (d < 0) return puts("0"), 0; if (d == 0) return !printf("1\n%.12Lf\n", (-b / (2.0L*a))); long double sd = std::sqrt(b*b - 4.0L*a*c); long double x1 = (-2.0L*c) / (b + sd); long double x2 = (b + sd) / (-2.0L*a); if (x1 > x2) std::swap(x1, x2); return !printf("2\n%.12Lf\n%.12Lf\n", x1, x2); } if (b != 0) { long double x = -1.0L * c / b; return !printf("1\n%.12Lf\n", x); } if (c != 0) return puts("0"), 0; return puts("-1"), 0; } int main() { solve_testcase(); }