比赛 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;
}