#P2500F. 小南爱交友
小南爱交友
题目背景
“同学,你要学编程嘛?”

小南是一位热情的学长。他乐于向身边同学分享编程学习的经验,还常常主动发起交流,帮大家解决编程学习里的困惑。
一天,有位小登向他问了一道题。
题目描述
对于一元二次方程 ,其实数解的求解方法如下:
计算 判别式 ,根据判别式的值判断解的情况:
- 若 ,方程无实数解;
- 若 ,方程有两个实数解,表达式为 。
示例:
- 方程 无实数解,因为 ;
- 方程 有两个相等的实数解 ;
- 方程 有两个不同的实数解 。
文中使用 表示整数 和 的 最大公因数。例如, 和 的最大公因数是 ,即 。
给定一元二次方程的系数 (均为整数,且 ,请判断方程 是否有实数解,并按照指定格式输出结果。
对于有理数 ,存在唯一的整数对 和 满足:, 且 。输出规则如下:
有理数输出规则
- 若 ,输出
{p}; - 否则,输出
{p/q}。
其中 和 均为整数。
- 当 时,,,应输出
-3/4; - 当 时,,,应输出
0。
方程输出规则
-
若 ,方程无实数解,输出
NO; -
若 ,方程有两个实数解(可能相等),取其中较大的解 按以下规则输出:
-
若 是有理数,按上述有理数输出规则输出;
-
若 是无理数,可表示为 的形式(其中 为有理数且 为大于 的正整数且无平方因子).
输出方式如下:
-
若 ,先按有理数规则输出 ,再输出
+,否则跳过这一步输出; -
然后根据 的类型输出 部分:
1.若 ,输出
sqrt({r});2.若 是整数,输出
{q2}*sqrt({r});3.若 是整数,输出
sqrt({r})/{q3};4.否则,存在唯一整数 满足 且 ,输出
{c}*sqrt({r})/{d}。
-
-
上述规则中, 均代表相应的整数值。
如果方程有实数解,输出两个解中的 较大者;否则输出 。
输入格式
输入的第一行包含一个正整数 ,表示系数的绝对值上限。
第二行包含三个整数 。
输出格式
输出一行,包含一个字符串,表示对应询问的答案,格式如题面所述。
注意, 区分大小写,即 , 等输出无法通过本题。
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
相关
在下列比赛中: