50分求调
查看原帖
50分求调
450498
miaozheyuan楼主2023/10/17 19:28
#include <bits/stdc++.h>
using namespace std;

int main() {
    int k;
    cin >> k;
    while(k--) {
    	long long n, e, d;
    	cin >> n >> d >> e;
    	long long h = n - e * d + 2;
    	if(int((h - sqrt(h * h - 4 * n)) / 2 / 0.01) % 100 != 0 || int((h + sqrt(h * h - 4 * n)) / 2 / 0.01) % 100 != 0) cout << "NO\n";
    	else cout << (h - sqrt(h * h - 4 * n)) / 2 << " " << (h + sqrt(h * h - 4 * n)) / 2  << "\n"; 
	}
    return 0;
}
/*
h = p + q;
pq = l;
(p + q)(p + q) = p^2 + 2pq + q^2
h * h = p^2 + 2l + q^2
h * h - 2l = p^2 + q^2
h * h - 2l = k;
(p - q)(p - q) = p^2 - 2pq + q^2
(p - q)(p - q) = k - 2l
p - q = sqrt(k - 2l)
sqrt(k - 2l) = m
h = p + q;
m = p - q;
p = (h + m) / 2;
q = (h - m) / 2;
l = n;
h = n - ed + 2
p = (n - ed + 2 + sqrt(k - 2l)) / 2
q = (n - ed + 2 - sqrt(k - 2l)) / 2
k = h * h - 2l
sqrt(k - 2l) = h * h - 2l - 2l = h * h - 4n
*/
2023/10/17 19:28
加载中...