[SDOI2005] 屠龙传说-屠龙枪卷

题目描述

先知看到修玛取回的药草,满意地点了点头。 他对修玛说:“跟我来”。 修玛顺从地跟着先知走到了他的房间里。先知的房间很大,四周满是书架,整整齐齐地摆放着一排排书籍。房间中间的圆桌上摆放着一个巨大的水晶球,它发出的荧光照亮了整个房间。 先知走到一排书架前,从中抽出一本薄薄的书来。这本书看起来十分古老,纸张都变成了黄色,有的地方已经发黑。修玛想,这本书的历史大概有好几百年了吧。 先知示意修玛坐下,他翻开手中的书,对修玛说道:“我已经研究这本书很久了。它是用一种古老的文字写成的,记载了一个十分古老的传说。书中提到,普通的武器是无法伤害巨龙的,只有诸神合力锻造的屠龙枪才能消灭它。为了防止屠龙枪被滥用,神把它封印在卡基思山上,只有拥有超人的勇气、力量和智慧的人才能解开这个封印。千百年来,很多人都想得到屠龙枪的力量,然而从没有人成功过。我查阅了所有有关屠龙枪的记载,悉心地研究那些资料,得知屠龙枪被封印在山顶的神殿中,而要解开这道封印,就必须把神殿中的一块巨大的圆石推到神殿祭坛的中心,然后念出解开封印的咒语。” 修玛问道:“那句咒语应该已经失传了吧?”“不,恰恰相反。”先知说,“这句咒语一直记载在这本书中,并被完好地保存下来。”“那么,剩下的只是把圆石推到祭坛的中心了。”修玛自信地笑了。然而先知却摇了摇头,“不,修玛,事情没有你想象的那么简单。爬上卡基思山就不是一件容易的事。它高耸入云,四周都是光秃秃的石壁,几乎没有落脚的地方。只有真正的勇士才能爬得上去。那块圆石也不是那么容易就能推动的,非得有超常的力量不可。这些东西,修玛你都有。但如果仅仅只有这些,那么屠龙枪早已被人拿到手了。书中不是说了么,要有勇气、力量和智慧。智慧才是真正的关键。如果在固定时间内不能把那块圆石推到祭坛的中心,那么圆石便会自动滚回原处,同时推石的人将永远无法再次推动这块圆石。而且不管你用多大力气推,这块圆石都不可能滚动得像你希望的那样快,我估计只有按照最短路线去推这块圆石,才能在固定时间内把它推到祭坛中心。神殿中又有着大大小小的石柱,有些石柱与石柱之间的空隙很小,根本就推不过去。正因为这种种困难,才没有人能够从神殿中取走屠龙枪。” 修玛沉默了一会儿,说:“不管如何,我也要去试一试。如果我不能拿到屠龙枪,就没有人能够拿到它了。” 先知点了点头,说:“去吧,修玛。记住,用你的智慧。” 修玛骑马奔驰了十天十夜,终于来到了卡基思山脚下。正如先知所说的那样,这座山根本就没有路可以上去,甚至找不到可以落脚的地方。然而修玛凭着他的勇气以及熟练的技巧,爬上了山顶。 当他走进神殿,一眼就看到了那块巨大的圆石。修玛该怎么做,才能把圆石推到祭坛的中心呢? ### 任务 你的任务是计算出把圆石推到祭坛中心的最短路线长度。 所谓推到祭坛中心是指圆石的中心与祭坛中心重合。 圆石中心的初始位置以及祭坛中心的位置是已知的。圆石半径为 $R$,它可以朝着任意方向滚动。洞中所有石柱均为正四棱柱,大小不一。 在推动圆石的过程中,要求圆石中心与所有石柱的距离均不小于 $R$,否则圆石将被石柱阻挡而不能继续滚动。

输入输出格式

输入格式


第一行包含了五个实数,依次表示圆石中心的初始位置的 $x$ 坐标、$y$ 坐标、圆石半径 $R$、祭坛中心的位置 $(x,y)$。 第二行包含一个整数 $n$,表示神殿中石柱的数目。 接下来 $n$ 行,每行包含三个实数 $(x_i,y_i,r_i)$,给出了一根石柱的信息,依次表示第 $i$ 根石柱左下角 $x$ 坐标、$y$ 坐标以及该石柱的边长。 数据输入所有实数均精确到 $2$ 位小数,范围在 $0$ 到 $1000$ 之内。

输出格式


输出仅包含一个实数,表示把圆石推到祭坛中心的最短路线长度,输出结果保留到两位小数。 若不存在一条把圆石推到祭坛中心的路,输出 `0.00`。

输入输出样例

输入样例 #1

0 0 10 30 40
1
10 10 10

输出样例 #1

57.93

说明

### 数据范围及约定 对于全部数据,满足 $0\le n\le 20$。 --- 修玛思索良久,果断地走到圆石旁边,用力推动这块巨石。圆石在修玛的推动下,缓缓地滚动起来。修玛时不时地调整着推动的角度,以使巨石朝着自己希望的方向滚动。终于,“卡嗒”的一声,圆石安安稳稳地滚到了祭坛的中心。一束光从神殿顶上直射而下,笼罩了整个祭坛。修玛对着祭坛,大声地念出了解开封印的咒语。顿时,祭坛开始颤动,中间的圆石也随着摇摆不定。突然间,整块圆石完全爆裂开来,在祭坛的中心,出现了一柄长枪。枪身上闪烁着神圣的光芒,令人惊羡不已。修玛走上前去,拔起了这柄枪。他感到一股强大的力量从手上传了过来。修玛随手把枪一挥,只听得“哗啦”一声,一根巨大的石柱应声四分五裂了。修玛又惊又喜,他知道这一定就是屠龙枪。