文件目录

#include <bits/stdc++.h>
using namespace std;
double a, b, c, d;
struct node
{
    double x;
    double y;
} k[20005];
bool cmp1(node a, node b)
{
    if (a.y == b.y)
        a.x < b.x;
    return a.y < b.y;
}
bool cmp2(node a, node b)
{
    return a.x < b.x;
}
double gety(double x)
{
    return a * pow(x, 3) + b * pow(x, 2) + c * x + d;
}
int main()
{
    cin >> a >> b >> c >> d;
    for (int i = -10000; i <= 10000; i++)
    {
        double x = i / 100.0;
        k[i + 10000].x = x;
        k[i + 10000].y = abs(0 - gety(x));
    }
    sort(k, k + 20000, cmp1);
    sort(k, k + 3, cmp2);
    printf("%.2lf %.2lf %.2lf", k[0].x, k[1].x, k[2].x);
    return 0;
}