#include<bits/stdc++.h>
using namespace std;
int delta;
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
void fan(int &a) {
a = 0 - a;
}
int huajiangenshi(int n) {
int ans = 1;
for(int i = 2; i * i <= n; i++) {
while(n % (i * i) == 0) {
n /= (i * i);
ans *= i;
}
}
return ans;
}
bool op = true;
pair<int, int> huajianfenshu(int a, int b) {
int op = 1;
if(a < 0) {
fan(op);
fan(a);
}
if(b < 0) {
fan(op);
fan(b);
}
int x = gcd(a, b);
return make_pair(a / x * op, b / x);
}
int a, b, c;
pair<int, int> l;
int main() {
int t, m;
scanf("%d%d", &t, &m);
while(t--) {
op = 1;
scanf("%d%d%d", &a, &b, &c);
delta = b * b - 4 * a * c;
if(delta < 0) {
printf("NO\n");
continue;
}
if(delta == 0) {
l = huajianfenshu(-b, 2 * a);
if(l.second == 1)
printf("%d\n", l.first);
else
printf("%d/%d\n", l.first, l.second);
continue;
}
int x = huajiangenshi(delta);
if(x * x == delta) {
if(a >= 0) {
l = huajianfenshu(-b + x, 2 * a);
} else
l = huajianfenshu(-b - x, 2 * a);
if(l.second == 1)
printf("%d\n", l.first);
else
printf("%d/%d\n", l.first, l.second);
continue;
}
l = huajianfenshu(-b, 2 * a);
if(l.second == 0) {
op = 0;
} else if(l.second == 1)
printf("%d", l.first);
else
printf("%d/%d", l.first, l.second);
if(a > 0) {
l = huajianfenshu(x, 2 * a);
} else
l = huajianfenshu(-x, 2 * a);
if(l.first > 0 && op)
printf("+");
if(l.first == -1)
printf("-");
else if(l.first != 1)
printf("%d*", l.first);
printf("sqrt(%d)", delta / x / x);
if(l.second != 1)
printf("/%d", l.second);
printf("\n");
}
return 0;
}
dalao们,有几个点WA了,赛前求调!