在一个平面上给定 n n n 个同心圆。
如下图所示:
这些同心圆构成的图形是蓝黄相间的,其中最外面的圆是蓝色。
请问,这 n n n 个同心圆构成的图形中,蓝色部分的总面积是多少?
输入格式
第一行包含整数
n
n
n。
第二行包含 n n n 个整数, r 1 , r 2 , … , r n r_1,r_2,…,r_n r1,r2,…,rn,表示各个圆的半径。
输出格式
输出蓝色部分的总面积。
结果保留六位小数。
数据范围
1
≤
n
≤
100
,
1≤n≤100,
1≤n≤100,
1
≤
r
i
≤
1000
,
1≤r_i≤1000,
1≤ri≤1000,
所有圆的半径两两不同。
输入样例1:
1
1
输出样例1:
3.141593
输入样例2:
3
1 4 2
输出样例2:
40.840704
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const double PI = acos(-1);
int n;
int a[110];
int main(){
cin >> n;
for(int i = 0; i < n; i++) cin >> a[i];
sort(a, a + n);
int ra = 0, rb = 0;
int last = 0;
for(int i = 0; i < n; i++){
if(i % 2) ra += (a[i] * a[i] - last * last);
else rb += (a[i] * a[i] - last * last);
last = a[i];
}
if(n % 2) printf("%.6lf", rb * PI);
else printf("%.6lf", ra * PI);
return 0;
}