https://www.luogu.com.cn/discuss/1017140
跟我比马蜂?
#include<bits\
/stdc++.h>
#define ll long long
using namespace std ;
inline ll read ( ){
ll x =0 ,y =1 ;
ch\
a\
r c =ge\
tchar ( ) ;
whil\
e (c<'0'||c>'9'){
if\
(c=='-')\
y\
=-1\
;
c=getc\
har();
}
while(\
c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'\
0',c=get\
char\
();
retur\
n x*y;
}
ll \
T,M,\
a,b,c,delta;
ll gcd(ll a,ll b){
if(b==0)return a\
;
return g\
cd(b,a%b);
}
int main(){
T=read()\
;M=read();
while(T--){
a=\
read();b=rea\
d();c=read();
\
delta=b*b-4*a*c;
if(delta<0){
printf\
("NO\n");
}else \
if(delta==0){
ll p=-b,q=2*a;
ll pq=gcd(abs(q),abs(p));
\
p/=pq,q/=pq;
if(q<0)q=-q,p=-p;
if(q==1)printf("%lld\n",p);
else printf("%\
lld/%lld\n\
",p,q);
}\
else{
ll p=-b,q=2*a;
ll sq=(ll)sqrt(delta);
\
if(sq*sq==delta){
if(q>0)p+=sq;
else p-=sq;
\
ll pq=\
gcd(a\
bs(q),abs(p));
p/=pq,q/=pq;
if(q<0)q=-q,p=-p;
\
if(q==1)printf("%\
lld\n",p);
else printf("%lld/%lld\n\
",p,q);
}else{
ll \
p\
q=gcd(abs(q),abs(p));
\
p/=pq,q/=pq;
\
if(\
q<0)\
q=-q,p=-p;
\
if(\
p!=0){
if(q==1)prin\
t\
f(\
"%lld+",p);
else printf("\
%lld/%lld+",p,q\
);
}
q=abs(2*a);
p=1;
\
ll t=0;
for(int r=sq;r>=1;r--)
if(del\
ta\
%(r*r)==0){
p*=r;
t\
=delta/(r*r);
\
break;
}
\
pq=gc\
d(\
abs(q),abs(p));
p/=pq,q/=pq;
if(\
q<0)q=-q,p=-p;
\
if(p==q) pri\
nt\
f(\
"s\
qrt(%lld)\
\n",t);
else if(q==1) printf("%lld*sqrt(%lld)\n",p,t);
else if(p==1) printf("sqrt(%ll\
d)/%\
lld\n",t,q);
\
els\
e printf("%l\
ld\
*sq\
rt(%l\
l\
d)/%lld\n",p,t,q);
}
}
}
return 0;
}