记录编号 |
594732 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[CSP 2022J]解密 |
最终得分 |
100 |
用户昵称 |
Embark |
是否通过 |
通过 |
代码语言 |
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;
}