这道题不开long long会见祖宗,但我unsigned long long都用上了,还是只有60分,需要高精度吗?
代码如下
#include <bits/stdc++.h>
#define int unsigned long long
using namespace std;
int k,n,d,e;
int _sqrt(int a){
int b=sqrt(a);
if(b*b!=a){
return -1;
}else{
return b;
}
}
int _pow(int a){
return a*a;
}
signed main() {
scanf("%d",&k);
for(int i=1; i<=k; i++) {
scanf("%d%d%d",&n,&d,&e);
int qjp=_sqrt(_pow(n)+_pow(e*d)-(2*n+4)*e*d+4);
if(qjp==-1){
printf("NO\n");
continue;
}
int _qjp=n+2-e*d;
int q=(qjp+_qjp)/2;
int p=(_qjp-qjp)/2;
printf("%d %d\n",min(q,p),max(q,p));
}
}