RT
这是m没判负的源码,洛谷自测40min
#include<iostream>
#include<cmath>
#define ll long long
using namespace std;
signed main(){
cin.tie(0),cout.tie(0);
ll k,n,d,e;
cin>>k;
for(register ll i=1;i<=k;i++){
cin>>n>>d>>e;
ll m=n-e*d+2;
ll x=m*m-4*n,y=sqrt(x);
if(y*y!=x||x<0) puts("NO");
else cout<<(m-y)/2<<" "<<(m+y)/2<<endl;
}
return 0;
这是加了m判负的源码,洛谷AC
#include<iostream>
#include<cmath>
#define ll long long
using namespace std;
signed main(){
ll k,n,d,e;
cin>>k;
for(register ll i=1;i<=k;i++){
cin>>n>>d>>e;
ll m=n-e*d+2;
ll x=m*m-4*n,y=sqrt(x);
if(y*y!=x||x<0||m<0) puts("NO");
else cout<<(m-y)/2<<" "<<(m+y)/2<<endl;
}
return 0;
}
然而题目范围是 1≤m≤109 ,数据是不是有误?
@chen_zhe