问题 23790 --函数的交点

23790: 函数的交点

时间限制: 1 Sec  内存限制: 128 MB
提交: 195  解决: 44
[提交][状态][讨论版][命题人:]

题目描述

      对于一个二次函数Y=AX^2+BX+C,判断它与Y=K是否有交点。若有,输出两点的横坐标(从左到右输出两个横坐标,)。若没有,则输出 “NO ANSWER”(不包括引号)。
注意,如果两个交点横坐标的差的绝对值小于0.001时,就认为这两个交点的横坐标相等,即AX^2+BX+C=K有两个相等的实数根,此时先输出(A+SQRT(B))/C ,再输出 (A-SQRT(B))/C
我们规定,输出的表达式为 A+|B/C 或者 A-|B/C 表示(A+SQRT(B))/C或(A-SQRT(B))/C (A,C可为负数,A可为0,C不可为0,B必大于或等于0)。
    注意,不要化简,如 -4-|4/2 不能表示成 -2-|1/1 ,虽然-4-|4/2 = -2-|1/1 。 
输入格式:  四个数:A,B,C,K (-200000≤A,B,C,K≤200000),分别表示函数Y=AX^2+BX+C的三个系数A,B,C和函数Y=K中常数K的值。 
输出格式: 如果两个函数有交点,那么输出就有两行:分别为两个交点的横坐标,用上面所述的方法输出。否则,就输出一行“NO ANSWER”。

输入

      四个数:A,B,C,K (-200000≤A,B,C,K≤200000),分别表示函数Y=AX^2+BX+C的三个系数A,B,C和函数Y=K中常数K的值。

输出

     如果两个函数有交点,那么输出就有两行:分别为两个交点的横坐标,用上面所述的方法输出。否则,就输出一行“NO ANSWER”。

样例输入

1 2 1 0

样例输出

-2+|0/2
-2-|0/2

提示

X^2+2X+1=0 中,B^2-4AC=0,所以它的两个根相等,所以根的输出顺序为(-2+SQRT(0))/2

(-2-SQRT(0))/2

X^2-2X=-1 中,B^2-4AC=0,所以它的两个根相等,所以根的输出顺序为(2+SQRT(0))/2

(2-SQRT(0))/2

X^2+2X+3=0 中,B^2-4AC=-8<0,所以它没有实数根,所以只要输出“NOANSWER”即可

来源

 

[提交][状态]