数学推导过程应该没错……
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+10;
int num,ans;
int main()
{
std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int k;
cin>>k;
while(k--)
{
int n,e,d;
cin>>n>>e>>d;
long long ed=e*d;
long long m=n+2-ed;//q+p
long long m2=m*m;
long long a=m2-4*n;
double b=sqrt(a);
double c=(int)b;//q-p
if(b!=c)
{
cout<<"NO"<<endl;
continue;
}
long long p=(m+c)/2;
long long q=m-p;
if(p>0&&q>0)
{
cout<<q<<" "<<p<<endl;
}
else
{
cout<<"NO"<<endl;
}
}
return 0;
}