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; printf"%d %d %d\n", bs(-1e9,$p,1), bs($p,$q,-1), bs($q,1e9,1)