本人乃一蒟蒻,备战时刷道此题。
这是我的思路
这是我的代码:
#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
int k,n,d,e;
signed main(){
cin>>k;
while(k--){
cin>>n>>d>>e;
if(((e*d-n)*(e*d-n)+4*n)<0){
cout<<"NO\n";
continue;
}
int p1=(n-e*d+sqrt((e*d-n)*(e*d-n)+4*n))/2;
int p2=(n-e*d-sqrt((e*d-n)*(e*d-n)+4*n))/2;
int q1=n/p1;
int q2=n/p2;
if(p1<=q1)cout<<p1<<' '<<q1<<endl;
else if(p2<=q2)cout<<p2<<' '<<q2<<endl;
}
return 0;
}
可是连样例都过不了,为什么呢?求各位大佬帮忙,玄关~~