这是我的代码,思路是完全平方公式,跟第一个题解的思路基本一模一样。
#include <iostream>
#include <math.h>
using namespace std;
/*
CSP RP++!!!
*/
int main()
{
long long k;
cin >> k;
long long n,d,e,m,p,q;
for (int i=0;i<k;i++){
scanf("%lld%lld%lld",&n,&e,&d);
m=n-d*e+2;
p=(m+(long long)sqrt(m*m-4*n))/2;
q=(m-(long long)sqrt(m*m-4*n))/2;
if (p && q && p*q==n && (p-1)*(q-1)+1==e*d){
printf("%lld %lld\n",min(p,q),max(p,q));
continue;
}
printf("No\n");
}
return 0;
}
如果您想帮助我,提供一组能让我WA的数据也很有帮助。
另外,截至目前我的那个100分是我粘贴题解的,我非常抱歉,但我真不是为了刷AC率,我只是觉得我的代码实在和他太像了,我就认证一下题解的正确性。