P8814 [CSP-J 2022] 解密 题解
Forever1507 · · 题解
稍微爆拆一下,
拿
哦对了为了方便记上面那坨为
然后和与积都有,直接构造二次方程(用韦达定理)。
判别式上求根公式,
然后判一下根号里面是不是完全平方、是否为正数和是否能被
#include<bits/stdc++.h>
#define int long long
using namespace std;
int k,n,d,e;
signed main(){
ios::sync_with_stdio(0);
cin>>k;
while(k--){
cin>>n>>d>>e;
int m=n-d*e+2;
int k=m*m-4*n;
int kk=sqrt(k);
if(kk*kk!=k){
cout<<"NO\n";
continue;
}
if((m+kk)%2==1||m<=kk){
cout<<"NO\n";
continue;
}
cout<<(m-kk)/2<<' '<<(m+kk)/2<<'\n';
}
return 0;
}