use bignum; sub bs{ ($l,$r,$v)=@_; while( $x=($l+$r)/2, $t=$x**3+$A*$x**2+$B*$x+$C, abs$t>=1e-9 ){ ($t*$v>0?$r:$l)=$x } $x } ($A,$B,$C)=glob<>; $s=sqrt$A**2-3*$B; $p=(-$A-$s)/3; $q=(-$A+$s)/3; print+( sprintf"%.f %.f %.f\n", bs(-1e9,$p,1), bs($p,$q,-1), bs($q,1e9,1) )=~s/-0/0/gr