不懂判断条件少了哪个
运算大抵是没有问题。(
但50pts非常痛苦
#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
inline int read()
{
int ret=0,f=1;
char ch=getchar();
while(!isdigit(ch))
{
if(ch=='-')
{
f=-1;
}
ch=getchar();
}
while(isdigit(ch))
{
ret=(ret<<1)+(ret<<3)+(ch^'0');
ch=getchar();
}
return ret*f;
}
int e,n,d,p,q;
int k;
signed main()
{
k=read();
for(int i=1;i<=k;i++)
{
n=read(),d=read(),e=read();
int m=n-e*d+2;
int cnt=pow(m,2)-4*n;
if(sqrt(cnt)*sqrt(cnt)!=cnt)
{
cout<<"NO"<<endl;
}
else if(((int)sqrt(cnt)+m)%2==1)
{
cout<<"NO"<<endl;
}
else if(!((m-sqrt(cnt))/2>0&&(m+sqrt(cnt))/2>0))
{
cout<<"NO"<<endl;
}
else
{
cout<<(m-sqrt(cnt))/2<<' '<<(m+sqrt(cnt))/2<<endl;
}
}
return 0;
}
求各位大佬看看