为什么不判正数都能过?
#include<bits/stdc++.h>
using namespace std;
using i64=long long;
void solve(){
i64 n,e,d,m,a; cin>>n>>e>>d;
m=n-(__int128)1*e*d+2;
a=m*m-4*n;
if(floor(sqrtl(a))*floor(sqrtl(a))!=a) cout<<"NO\n";
else{
a=sqrtl(a);
if((a+m)%2||(m-a)%2) cout<<"NO\n";
else{
cout<<(m-a)/2<<' '<<(a+m)/2<<'\n';
}
}
}
int main(){
int t; cin>>t;
while(t--) solve();
return 0;
}