SP7627 NE06D - Driving Direction

题目描述

在一个无限大的平面直角坐标系中,存在 $n$ 个各边均与坐标轴平行的矩形,求一个半径为 $r$ 的圆在不与矩形相交的情况下从 $(x_A,y_A)$ 运动到 $(x_B,y_B)$ 的最短距离。

输入格式

存在多组数据,请处理到文件末尾。 对于每组数据,第一行两个整数 $r,n$。 第二行四个整数 $x_A,y_A,x_B,y_B$。 接下来 $n$ 行,每行四个整数 $x_1,y_1,x_2,y_2$,表示一个矩形的左下角和右上角。

输出格式

对于每组数据,如果无法到达,输出 `no solution`,否则输出一个数,表示最短距离,至少精确到小数点后六位。 ### 输入/输出样例 ``` 1 3 2 7 7 1 3 2 6 4 7 5 9 8 1 8 5 9 2 4 0 0 5 6 8 3 10 6 5 9 9 10 1 4 2 8 3 1 5 3 1 2 0 5 10 5 2 2 4 5 6 5 8 8 ``` ``` 10.570796 no solution 11.652892 ```

说明/提示

$1\le r\le 100,0\le n\le 30,-1000\le x_A,y_A,x_B,y_B\le 1000,-1000\le x_1,y_1, x_2,y_2\le1000,x_1