我在其它网站上交了如下代码
#include<bits/stdc++.h>
using namespace std;
int T;
long long n,e,d;
int main(){
cin>>T;
while(T--){
cin>>n>>e>>d;
long long m=n+2-d*e;
if(m*m-4*n<0){
cout<<"NO\n";
continue;
}
double ans=(m+sqrt(m*m-4*n))/2;
long long ans2=(long long)(ans+0.5);
if(fabs(ans-ans2)<1e-7){
long long p=ans2,q=n/ans2;
if(p>q)swap(p,q);
cout<<p<<" "<<q<<endl;
}else{
cout<<"NO\n";
}
}
return 0;
}
能A洛谷数据
在那个网站上70
检查了一下
发现 (n+2−d∗e)2−4∗n 可能爆ull
建议加hack数据( (n+2−d∗e)2−4∗n 爆ull的)
让此题只有二分可过