20分求助
查看原帖
20分求助
703085
Myosotis_alpestris楼主2023/5/16 19:10

数学推导过程应该没错……

#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+10;
int num,ans;
int main()
{
	std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
	int k;
	cin>>k;
	while(k--)
	{
		int n,e,d;
		cin>>n>>e>>d;
		long long ed=e*d;
		long long m=n+2-ed;//q+p 
		long long m2=m*m;
		long long a=m2-4*n;
		double b=sqrt(a);
		double c=(int)b;//q-p
		if(b!=c)
		{
			cout<<"NO"<<endl;
			continue;
		}
		long long p=(m+c)/2;
		long long q=m-p;
		if(p>0&&q>0)
		{
			cout<<q<<" "<<p<<endl;
		}
		else
		{
			cout<<"NO"<<endl;
		}
	}
	return 0;
}
2023/5/16 19:10
加载中...