如果你是用完全平方推出来的 p+q, p−q 的式子,注意会炸ll
请使用 long double ,如下
#include<bits/stdc++.h>
using namespace std;
int k;
int main(){
scanf("%d", &k);
long double ans1, ans2, g, n, e, d, j;
while(k --){
scanf("%Lf%Lf%Lf", &n, &d, &e);
g = 1.0 * n - e * d + 2;
j = sqrt(g * g - 4 * n);
ans1 = 1.0 * (g + j) / 2;
ans2 = 1.0 * g - ans1;
if((long long) ans1 != ans1 || (long long) ans2 != ans2){
printf("NO\n");
}
else printf("%lld %lld\n", (long long)(ans1 < ans2 ? ans1 : ans2), (long long)((ans1 > ans2 ? ans1 : ans2)));
}
return 0;
}