10->60-?->100
查看原帖
10->60-?->100
492276
nivxuan楼主2024/10/18 08:35

这道题不开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));
	}
}
2024/10/18 08:35
加载中...