#P2500F. 小南爱交友

小南爱交友

题目背景

“同学,你要学编程嘛?”

小南是一位热情的学长。他乐于向身边同学分享编程学习的经验,还常常主动发起交流,帮大家解决编程学习里的困惑。

一天,有位小登向他问了一道题。

题目描述

对于一元二次方程 ax2+bx+c=0 (a0)ax^2 + bx + c = 0 \ (a \neq 0),其实数解的求解方法如下:

计算 判别式 Δ=b24ac \Delta = b^2 - 4ac ,根据判别式的值判断解的情况:

  • Δ<0 \Delta < 0 ,方程无实数解;
  • Δ0 \Delta \geq 0 ,方程有两个实数解,表达式为 x1,2=b±Δ2a x_{1,2} = \frac{-b \pm \sqrt{\Delta}}{2a}

示例:

  • 方程 x2+3x+100=0 x^2 + 3x + 100 = 0 无实数解,因为 Δ=324×100×1=391<0\Delta = 3^2 - 4 \times 100 \times 1 = -391<0
  • 方程 x26x+9=0 x^2 - 6x + 9 = 0 有两个相等的实数解 x1,2=3x_{1,2} = 3
  • 方程 x211x+30=0 x^2 - 11x + 30 = 0 有两个不同的实数解 x1=5,x2=6 x_1 = 5, x_2 = 6

文中使用 gcd(a,b)gcd(a,b) 表示整数 aabb最大公因数。例如,15152020 的最大公因数是 55,即 gcd(15,20)=5\gcd(15, 20) = 5

给定一元二次方程的系数 a,b,ca, b, c(均为整数,且 a0a \neq 0请判断方程 ax2+bx+c=0ax^2 + bx + c = 0 是否有实数解,并按照指定格式输出结果

对于有理数 vv,存在唯一的整数对 ppqq 满足:q>0q > 0gcd(p,q)=1\gcd(p, q) = 1v=pqv = \frac{p}{q} 。输出规则如下:

有理数输出规则

  • q=1 q = 1 ,输出 {p}
  • 否则,输出 {p/q}

其中 p p q q 均为整数。

  • v=0.75 v = -0.75 时,p=3 p = -3 q=4 q = 4 ,应输出 -3/4
  • v=0 v = 0 时,p=0 p = 0 q=1 q = 1 ,应输出 0

方程输出规则

  • Δ=b24ac<0 \Delta = b^2 - 4ac < 0 ,方程无实数解,输出 NO

  • Δ0 \Delta \geq 0 ,方程有两个实数解(可能相等),取其中较大的解 x x 按以下规则输出:

    • x x 是有理数,按上述有理数输出规则输出;

    • x x 是无理数,可表示为 x=q1+q2r x = q_1 + q_2\sqrt{r} 的形式(其中 q1,q2 q_1, q_2 为有理数且 q2>0r q_2 > 0 , r 为大于 11的正整数且无平方因子).

      输出方式如下:

      • q10 q_1 \neq 0 ,先按有理数规则输出 q1 q_1 ,再输出 +,否则跳过这一步输出;

      • 然后根据 q2 q_2 的类型输出 q2r q_2\sqrt{r} 部分:

        1.若 q2=1 q_2 = 1 ,输出 sqrt({r})

        2.若 q2 q_2 是整数,输出 {q2}*sqrt({r})

        3.若 q3=1q2 q_3 = \frac{1}{q_2} 是整数,输出 sqrt({r})/{q3}

        4.否则,存在唯一整数 c,d>1 c, d > 1 满足 gcd(c,d)=1 \gcd(c, d) = 1 q2=cd q_2 = \frac{c}{d} ,输出 {c}*sqrt({r})/{d}

上述规则中,pqq2q3rcd p 、 q 、 q_2 、 q_3 、 r 、 c 、 d 均代表相应的整数值。

如果方程有实数解,输出两个解中的 较大者;否则输出 NO\text{NO}

输入格式

输入的第一行包含一个正整数 mm (1m103)(1 \leq m \leq 10^3),表示系数的绝对值上限。

第二行包含三个整数 a,b,ca, b, c (ma,b,cm,a0)(-m \leq a,b,c \leq m, a \neq 0)

输出格式

输出一行,包含一个字符串,表示对应询问的答案,格式如题面所述。

注意,NO\text{NO} 区分大小写,即 No\text{No}nO\text{nO} 等输出无法通过本题。

1000
1 -2 1
1
1000
4 4 1
-1/2
1000
1 0 -432
12*sqrt(3)
1000
1 7 1
-7/2+3*sqrt(5)/2
1000
2 -4 1
1+sqrt(2)/2
1000
1 1 100
NO