60分WA求助
查看原帖
60分WA求助
1013142
Chizuru_Ichinose楼主2023/9/20 19:38
#include<bits/stdc++.h>
#define ll unsigned long long
using namespace std;
ll t, n, p, q, pjq, pcq;
signed main() {
	cin >> t;
	while (t--) {
		cin >> n >> p >> q;
		pjq = n - p * q + 2;
		pcq = pjq * pjq - 4 * n;
		if ((int)sqrt(pcq) == double(sqrt(pcq))) {
			ll l1 = (pjq + sqrt(pcq)) / 2;
			ll l2 = (pjq - sqrt(pcq)) / 2;
			if ((l1 - 1) * (l2 - 1) + 1 == p*q && l1 * l2 == n) {
				cout << min(l1, l2) << " " << max(l1, l2) << endl;
				continue;
			}

		}
		else cout<<"NO"<<endl;
//		int derta=(unsigned long long)abs((long double)pjq-4*n);
//		int tepjqp=derta;
//		derta=sqrt(derta);
//		if(derta*derta!=tepjqp){
//			cout<<"No\n";
//			continue;
//		}
//		derta=pjq+derta;
//		derta/=2;
//		int l1=derta;
//		int l2=pjq-derta;
//		if(l1<l2) cout<<l1<<" "<<l2<<"\n";
//		else cout<<l2<<" "<<l1<<"\n";
		}
	}
2023/9/20 19:38
加载中...