#include #include #include #include #include using namespace std; constexpr long double kEps = 1E-16, nEps = 1E-12, kInf = 1E20; int main() { long long int a, b, c; scanf("%lld%lld%lld", &a, &b, &c); if (a == 0) { if (b == 0) { if (c == 0) printf("-1\n"); else printf("0\n"); } else printf("1\n%.20lf\n", (double)((long double)c / (long double) -b)); } else { if (a < 0) { a = -a; b = -b; c = -c; } long double ta(a), tb(b), tc(c), d, sa, sb, l, r, mid; d = b * b - 4 * a * c; if (b * b - 4 * a * c > 0) { cout << 2 << '\n'; l = -kInf; r = -tb / ta / 2 - kEps; for (int i = 0; i < 100000; i++) { mid = (l + r) / 2; if (a * mid * mid + b * mid + c > kEps) l = mid; else if(a * mid * mid + b * mid + c < - kEps) r = mid; } mid = (l + r) / 2; cout << setprecision(80) << mid << '\n'; sa = a * mid * mid + b * mid + c; assert(-kEps < sa && sa < kEps); l = -tb / ta / 2 + kEps; r = kInf; for (int i = 0; i < 100000; i++) { mid = (l + r) / 2; if (a * mid * mid + b * mid + c > kEps) r = mid; else if(a * mid * mid + b * mid + c < - kEps) l = mid; } mid = (l + r) / 2; cout << setprecision(80) << mid << '\n'; sa = a * mid * mid + b * mid + c; assert(-kEps < sa && sa < kEps); } else if (b * b - 4 * a * c < 0) printf("0\n"); else printf("1\n%.20lf\n", (double) (-tb / (ta * 2))); } }