喝“水题”
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小小签到人是一个有强迫症的人,他每一次喝水都喜欢拿特殊形状的杯子喝水,有一天他突发奇想,想知道他的杯子能容纳多少体积的水,希望你能帮助他计算一下。

小小签到人的杯子是由一个半球和一个圆台上下叠放而成(半球在下面,圆台在上面,圆台底面与半圆重合),大圆的半径为 R ,小圆的半径为 r ,众所周知,圆台是由圆锥切割而成,所以被切前圆锥的高为 ,切去的圆锥高度为 
————————————————————————————————
球的体积公式为:4 / 3 * π * r³r 球的半径)
圆锥的体积公式:1 / 3 * S * hS 为圆锥底面积,为圆锥的高)
圆的面积:π * r²

输入描述:

输入一行 R,r,H, h

输出描述:

输出一行 V 表示杯子的体积,结果保留两位小数(精度为小数点后12位)。
示例1

输入

复制
2 1 2 1

输出

复制
24.07

备注:

0 < r < R;
0 < h < H;
π 取值 3.14
所得体积 V 不超过 10⁹