#include<bits/stdc++.h>
using namespace std;
#define db double
const db eps=0.001;
db a,b,c,d;
double f(db x){return a*x*x*x+b*x*x+c*x+d;}
void find(db l,db r){
while(r-l>=eps){
db mid=l+(r-l)/2;
db ll=f(l),rr=f(r),dd=f(mid);
if(fabs(dd)<=eps){
printf("%.2lf ",mid);
return;
}
if(dd*ll<=0)r=mid;
else l=mid;
}
}
int main(){
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
int s=0;//记录根数目
for(db i=-100.00;i<=99.00;i++){
db ll=f(i),rr=f(i+1);
if(!ll){
printf("%.2lf ",i);
s++;
}
else if(ll*rr<0)find(i,i+1),s++;
if(s==3)return 0;
}
}
改+交了5遍。。。可能是还没理解好二分