数学思维60分求助
查看原帖
数学思维60分求助
577836
Iverson_sun楼主2023/8/9 22:01
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#include<queue>
#include<deque>
#include<stack>
#include<map>
#include<list>
using namespace std;
const int N = 1e6 + 10;
const int INF = 0x3f3f3f3f;
const int mod = 1e6;
#define int long long

int n , e , d , h , c , q , p;

signed main(){
	int k;
	cin >> k;
	while(k--){
		cin >> n >> e >> d;
		h = n - (e * d - 2);
		c = sqrt(pow(h , 2) - (4 * n));
		q = (h + c) / 2;
		p = h - q;
		if(q * p == n && e * d == (p - 1) * (q - 1) + 1)cout << ((q < p) ? q : p) << " " << ((q < p) ? p : q) << endl;
		else cout << "NO" << endl;
	}
}

2023/8/9 22:01
加载中...