有人能出一个hack数据吗,不知道哪里错了
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll T,n,a,b,c;
ll gcd(ll a,ll b){
if(a<b)swap(a,b);
if(b==0)return a;
return gcd(b,a%b);
}
int main(){
//freopen("uqe.in","r",stdin);
//freopen("uqe.out","w",stdout);
cin>>T>>n;
while(T--){
bool flag=false;
cin>>a>>b>>c;
ll trg=b*b-4*a*c;
if(trg<0){
cout<<"NO\n";
continue;
}
if(int(sqrt(trg))*int(sqrt(trg))==trg){
if((double(-b+sqrt(trg))/(2*a))>=double(-b-sqrt(trg))/(2*a)){
if((-b+int(sqrt(trg)))%(2*a)==0)cout<<(-b+sqrt(trg))/(2*a);
else {
ll q1m=2*a,q1z=-b+sqrt(trg);
ll gd=gcd(abs(q1m),abs(q1z));
q1m/=gd,q1z/=gd;
cout<<q1z<<"/"<<q1m;
}
}
else{
cout<<-b<<" "<<int(sqrt(trg))<<"\n";
if((-b-int(sqrt(trg)))%(2*a)==0)cout<<(-b-sqrt(trg))/(2*a);
else {
ll q1m=2*a,q1z=-b-sqrt(trg);
ll gd=gcd(abs(q1m),abs(q1z));
q1m/=gd,q1z/=gd;
cout<<q1z<<"/"<<q1m;
}
}cout<<"\n";
continue;
}
double ssj1=(-b+sqrt(double(trg)))/(2*a),ssj2=(-b-sqrt(double(trg)))/(2*a);
if(ssj1>ssj2)flag=true;
ll q1m=2*a,q1z=-b;
ll gd=gcd(abs(q1m),abs(q1z));
q1m/=gd,q1z/=gd;
ll q2m=2*a,q2z=1;
for(int i=2;i*i<=trg;i++){
while(trg%(i*i)==0){
trg/=i*i;
if(q2m%i==0)q2m/=i;
else q2z*=i;
}
}
if((q2m<0 || q2z<0) && (q2m>0 || q2z>0))flag=!flag;
q2m=abs(q2m),q2z=abs(q2z);
if(q1z!=0){
if(q1z%q1m==0)cout<<q1z/q1m;
else {
cout<<q1z<<"/"<<q1m;
}
if(flag==true)cout<<"+";
else cout<<"-";
}
if(q2z!=0 && q2z!=1)cout<<q2z<<"*";
cout<<"sqrt("<<trg<<")";
if(q2m!=0 && q2m!=1)cout<<"/"<<q2m;
cout<<"\n";
}
return 0;
}