50pts玄关求调
查看原帖
50pts玄关求调
1758836
infecever楼主2025/7/21 10:58
#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
int n;
int m;
int p,q;
signed main()
{
	int t;
	cin>>t;
	while(t--)
	{
		cin>>n>>p>>q;
		m=n-p*q+2;
//		cout<<m<<'\n';
		// cout<<sqrt(m*m-4*n)<<'\n';
		if(m*m-4*n<0)
		{
			cout<<"NO";
			
		}
		// else if(m*m-4*n==0)
		// {
		// 	if(m%2!=0)cout<<"NO";
		// 	else cout<<-m/2;
		// }
		else{
			if((int)sqrt(m*m-4*n)*(long long)sqrt(m*m-4*n)==m*m-4*n)
			{
				if((int)(m-sqrt(m*m-4*n))%2==0)cout<<(m-sqrt(m*m-4*n))/2<<" "<<(m+sqrt(m*m-4*n))/2;
				else{
					cout<<"NO";
				}
			}
			else{
				cout<<"NO";
			}
		}
		cout<<'\n';
	}
}
2025/7/21 10:58
加载中...