60分:
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
long long k,n,e,d;
long long p,q;
int main(){
cin>>k;
for(int i=1;i<=k;i++){
cin>>n>>e>>d;
p=(sqrt((n-e*d+2)*(n-e*d+2)-4*n)+n-e*d+2)/2;
q=n-e*d+2-p;
if(p*q==n && p && q && e*d==(p-1)*(q-1)+1) cout<<min(p,q)<<" "<<max(p,q)<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
AC:
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
long long k,n,e,d;
long long p,q;
int main(){
cin>>k;
for(int i=1;i<=k;i++){
cin>>n>>e>>d;
long long f=n-e*d+2;
p=(sqrt(f*f-4*n)+f)/2;
q=f-p;
if(p*q==n && p && q && e*d==(p-1)*(q-1)+1) cout<<min(p,q)<<" "<<max(p,q)<<endl;
else cout<<"NO"<<endl;
}
return 0;
}