算法
排个序算一下就好了,没什么好讲的
时间复杂度 $O(nlogn)$
C++ 代码
#include<iostream>
#include<vector>
#include<cmath>
#include<algorithm>
using namespace std;
const double PI = acos(-1);
int main()
{
vector<int> r;
int n;
cin >>n;
for (int i = 0; i < n;i++)
{
int x;
cin >> x;
r.push_back(x);
}
sort(r.begin(), r.end(), greater<int>());
r.push_back(0);
double res = 0;
for (int i = 0; i < n;i+=2)
{
res += PI * (r[i] - r[i + 1]) * (r[i] + r[i + 1]);
}
printf("%.6lf", res);
return 0;
}