bzoj#P2829. 信用卡凸包

信用卡凸包

题目描述

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

image

输入格式

输入的第一行是一个正整数 nn,表示信用卡的张数。第二行包含三个实数 a,b,ra,b,r,分别表示信用卡(圆滑处理前)竖直方向的长度、水平方向的长度,以及 1/41/4 圆的半径。

之后 nn 行,每行包含三个实数 x,y,θx,y,θ,分别表示一张信用卡中心(即对角线交点)的横、纵坐标,以及绕中心 逆时针旋转的弧度。

输出格式

输出只有一行,包含一个实数,表示凸包的周长,四舍五入精确到小数点后 22 位。

2
6.0 2.0 0.0
0.0 0.0 0.0
2.0 -2.0 1.5707963268
21.66

样例说明

image

本样例中的 22 张信用卡的轮廓在上图中用实线标出,如果视 1.57079632681.5707963268π/2\pi/2(π\pi 为圆周率),则其凸包的周长为 16+4216+4*\sqrt{2}

数据规模与约定

image

image