40分求助,可能是精度问题
查看原帖
40分求助,可能是精度问题
946696
mlemtion楼主2023/7/7 16:54
#include <bits/stdc++.h>
using namespace std;
long long k,n,d,e,p,q;
int main(){
	cin>>k;
	while(k--){
		scanf("%lld %lld %lld",&n,&d,&e);
		long long delta=(n-e*d+2)*(n-e*d+2)-4*n;
		 if(delta<0||sqrt(delta)*sqrt(delta)!=delta){
			printf("NO\n");
			continue;
		}
		p=(n-e*d+2-sqrt(delta))/2;
		q=(n-e*d+2+sqrt(delta))/2;
		printf("%lld %lld\n",p,q);
	}
	return 0;
}

评测记录

2023/7/7 16:54
加载中...