logo AlgoBeat OnlineJudge
登录 注册

#102829. [BZOJ 2829] 信用卡凸包

内存限制:128 MiB 时间限制:10000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: 匿名

题目描述

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

image

输入格式

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

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

输出格式

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

样例

样例输入 #1

2
6.0 2.0 0.0
0.0 0.0 0.0
2.0 -2.0 1.5707963268

样例输出 #1

21.66

样例说明

image

本样例中的 张信用卡的轮廓在上图中用实线标出,如果视 ( 为圆周率),则其凸包的周长为

数据范围与提示

image

image