测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A61582. 2021年CSP-S提高组初赛阅读程序题:#include <iostream>

编程题

题目描述

2021年CSP-S提高组初赛阅读程序题:

#include <iostream>
#include <cmath>
using namespace std;
 
const double r = acos(0.5);
 
int a1, b1, c1, d1;
int a2, b2, c2, d2;
 
inline int sq(const int x) { return x * x; }
inline int cu(const int x) { return x * x * x; }
 
int main()
{
  cout.flags(ios::fixed);
  cout.precision(4);
 
  cin >> a1 >> b1 >> c1 >> d1;
  cin >> a2 >> b2 >> c2 >> d2;
 
  int t = sq(a1 - a2) + sq(b1 - b2) + sq(c1 - c2);
 
  if (t <= sq(d2 - d1)) cout << cu(min(d1, d2)) * r * 4;
  else if (t >= sq(d2 + d1)) cout << 0;
  else {  
    double x = d1 - (sq(d1)   sq(d2) + t) / sqrt(t) / 2;
    double y = d2 - (sq(d2)   sq(d1) + t) / sqrt(t) / 2;
      cout << (x * x * (3 * d1 - x) + y * y * (3 * d2 - y)) * r;
  }
  cout << endl;
  return 0;
}

假设输入的所有数的绝对值都不超过 1000,完成下面的判断题和单选题