数学解法(一元二次方程)
怎么不行QaQ
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int k;
int main()
{
cin >> k;
while(k >= 1)
{
long double q, p;
ll n, m, e, d;
cin >> n >> d >> e;
m = n - e * d + 2;
long double temp = sqrt(m * m - 4 * n);
p = (static_cast<int>(temp) + m) / 2;
q = m - p;
if(q * p != n || e * d != ((p - 1) * (q - 1) + 1))
{
cout << "NO" << endl;
--k;
continue;
}
else if(p < q)
cout << p << ' ' << q << endl;
else
cout << q << ' ' << p << endl;
--k;
}
return 0;
}