U385735 饥饿的Sam
题目背景
# $Sam$ $is$ **$HUNGRY$**
题目描述
$Sam$想要吃到离它有一定距离的骨头,但是它太饿了,所以想找到你询问跑到骨头的最短路径的长度。
现将草地抽象为一个平面,$Sam$和骨头抽象为一个点,分别位于$(x_1,y_1),(x_2,y_2)$。
但不幸的是,草地上有许多栅栏(只能是水平或垂直的)和箱子,$Sam$无法越过它们,只能绕开。
栅栏一共有$n$个,可以视为一条直线,关于每个栅栏的描述如下:方向(0表示水平,1表示垂直),最左端或最上端的坐标$(x,y)$,以及其长度$L$。
箱子一共有$m$个,保证都是正方形,关于每个箱子的描述如下:中心坐标$(x,y)$,箱子的边长$a$。
输入格式
第一行输入四个数$x_1,y_1,x_2,y_2$,分别表示$Sam$和骨头一开始的坐标。
第二行输入两个整数$n,m$,分别表示栅栏和箱子的数量
随后$n$行,每行四个数,含义同上
随后$m$行,每行三个数,含义同上
输出格式
共一行,一个两位小数,表示最短距离的长度
说明/提示
对于100%的数据,所有物品的横纵坐标在0至100之间,精确至一位小数,$1 \leq n,m\le 100$
$Sam$可以走斜线,也可以紧贴着栅栏或箱子走
数据保证$Sam$可以走到骨头