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$可以走到骨头