#P2500F. 小南爱交友

小南爱交友

题目背景

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

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

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

题目描述

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

计算 判别式 Δ=b2−4ac \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 无实数解,因为 Δ=32−4×100×1=−391<0\Delta = 3^2 - 4 \times 100 \times 1 = -391<0;
  • 方程 x2−6x+9=0 x^2 - 6x + 9 = 0 有两个相等的实数解 x1,2=3x_{1,2} = 3 ;
  • 方程 x2−11x+30=0 x^2 - 11x + 30 = 0 有两个不同的实数解 x1=5,x2=6 x_1 = 5, x_2 = 6 。

文中使用 gcd(a,b)gcd(a,b) 表示整数 aa 和 bb 的 最大公因数。例如,1515 和 2020 的最大公因数是 55,即 gcd⁡(15,20)=5\gcd(15, 20) = 5。

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

对于有理数 vv,存在唯一的整数对 pp 和 qq 满足:q>0q > 0,gcd⁡(p,q)=1\gcd(p, q) = 1 且 v=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。

方程输出规则

  • 若 Δ=b2−4ac<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>0,r q_2 > 0 , r 为大于 11的正整数且无平方因子).

      输出方式如下:

      • 若 q1≠0 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}。

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

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

输入格式

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

第二行包含三个整数 a,b,ca, b, c (−m≤a,b,c≤m,a≠0)(-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