| 比赛 |
ICPC复现(AI数据) |
评测结果 |
AAAAAA |
| 题目名称 |
球 |
最终得分 |
100 |
| 用户昵称 |
LikableP |
运行时间 |
0.627 s |
| 代码语言 |
C++ |
内存使用 |
2.09 MiB |
| 提交时间 |
2026-05-26 20:39:07 |
显示代码纯文本
#include <cstdio>
#include <cmath>
const double PI = acos(-1);
void Work() {
double x, y, z, r1, r2;
scanf("%lf %lf %lf %lf %lf", &x, &y, &z, &r1, &r2);
double d = sqrt(x * x + y * y + z * z);
if (d >= r1 + r2) {
printf("%.6lf\n", 0.0);
} else if (d < fabs(r1 - r2)) {
printf("%.6lf\n", fmin(4 * PI * r1 * r1 * r1 / 3, 4 * PI * r2 * r2 * r2 / 3));
} else {
double X = (r1 * r1 - r2 * r2 + d * d) / (2 * d);
double h1 = r1 - X, h2 = r2 + X - d;
double V1 = PI * h1 * h1 * (3 * r1 - h1) / 3, V2 = PI * h2 * h2 * (3 * r2 - h2) / 3;
printf("%.6lf\n", V1 + V2);
}
}
int T;
int main() {
#ifdef LOCAL
freopen("!input.in", "r", stdin);
freopen("!output.out", "w", stdout);
#else
freopen("qiu.in", "r", stdin);
freopen("qiu.out", "w", stdout);
#endif
scanf("%d", &T);
while (T--) {
Work();
}
return 0;
}