有点难
2025-05-06 17:16:53
发布于:广东
18阅读
0回复
0点赞
#include <bits/stdc++.h>
#define f long double
using namespace std;
f eps = 1e-12;
int main() {
int t;
cin >> t;
while (t--) {
f d;
cin >> d;
if (d < eps) {
cout << "Y 0.000000 0.000000\n";
continue;
}
if (d < 4.0 - eps) {
cout << "N\n";
continue;
}
f l = 0, r = d / 2.0;
for (int i = 0; i < 100; i++) { // 100越大,精度越高
f mid = (l + r) / 2.0;
f a = mid, b = d - a;
if (a * b > d + eps) {
r = mid;
} else {
l = mid;
}
}
printf("Y %.6Lf %.6Lf\n", l, d - l);
}
return 0;
}
这里空空如也
有帮助,赞一个