记录编号 594732 评测结果 AAAAAAAAAA
题目名称 [CSP 2022J]解密 最终得分 100
用户昵称 GravatarEmbark 是否通过 通过
代码语言 C++ 运行时间 1.483 s
提交时间 2024-10-04 18:10:28 内存使用 3.35 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long m,n,e,d,p,q,k,delta;
bool square(long long num) {
	long long root = sqrt(num);
	return root * root == num;
}
bool zzs(long long num) {
	return num > 0 && static_cast<long long>(num) == num;
}
int main(){
	freopen("csp2022pj_decode.in","r",stdin);
	freopen("csp2022pj_decode.out","w",stdout);
	cin>>k;
	for(int i=1;i<=k;i++){
		cin>>n>>e>>d;
		m=(n-(e*d))+2;
		delta=m*m-4*n;
		if(delta<0) cout<<"NO\n";
		else{
			if(!square(delta)) cout<<"NO\n";
			else{
				p=(m+sqrt(delta))/2;
				q=(m-sqrt(delta))/2;
				if(zzs(p)&&zzs(q)) cout<<q<<" "<<p<<"\n";
				if(!zzs(p)||!zzs(q)) cout<<"NO\n";
			}
		}
		
	}
	
	
	
	return 0;
}