P3829 [SHOI2012] 信用卡凸包
题目背景
SHOI2012D1T2
题目描述
信用卡是一个矩形,唯四个角作了圆滑处理,使它们都是与矩形的两边相切的 1/4 圆,如下图所示。现在平面上有一些规格相同的信用卡,试求其凸包的周长。注意凸包未必是多边形,因为它可能包含若干段圆弧。

输入格式
无
输出格式
无
说明/提示
样例1说明: 
本样例中的 2 张信用卡的轮廓在上图中用实线标出,如果视 1.5707963268为pi/2,那么凸包的周长为16+4sqrt(2)
样例2说明: 
样例3说明: 
其凸包的周长约为41.628267652。
本题可能需要使用数学库中的三角函数。不熟悉使用方法的选手,可以参考下面的程序及其输出结果:
```cpp
uses math;
const Pi = 3.141592653589793;
begin
writeln(sin(30.0 / 180.0 * Pi) : 0 : 10);
writeln(cos(60.0 / 180.0 * Pi) : 0 : 10);
writeln(tan(45.0 / 180.0 * Pi) : 0 : 10);
writeln(arcsin(1.0) : 0 : 10);
writeln(arccos(0.0) : 0 : 10);
writeln(arctan(1.0) : 0 : 10);
end.
```
```cpp
#include
#include
using namespace std;
const double Pi = 3.141592653589793;
int main()
{
cout.setf(ios::fixed);
cout.precision(10);
cout