#P16696. [ICPC 2017 Jakarta R]National Disaster: Two Towers

[ICPC 2017 Jakarta R]National Disaster: Two Towers

题目描述

尽管进行了许多治理,Indinesia 仍然经常遭受失控森林火灾的袭击。

该国有两座火灾瞭望塔,分别位于:

(x1,y1)(x_1,y_1)

(x2,y2),(x_2,y_2),

其中:

x1<x2,y1<y2.x_1<x_2,\qquad y_1<y_2.

因此,两座塔恰好是一个坐标轴平行矩形的左下角和右上角。

该国还有 NN 个火灾热点。第 ii 个热点是一个圆形燃烧区域,圆心为:

(xi(f),yi(f)),(x_i^{(f)},y_i^{(f)}),

半径为 rir_i

平面上的点 (x,y)(x,y) 被称为安全点,当且仅当它满足:

  1. 位于两座塔确定的矩形内部或边界上:

    x1xx2,x_1\le x\le x_2, y1yy2;y_1\le y\le y_2;
  2. 不严格位于任何燃烧圆盘内部。也就是说,对每个 1iN1\le i\le N

    (xxi(f))2+(yyi(f))2ri.\sqrt{(x-x_i^{(f)})^2+(y-y_i^{(f)})^2}\ge r_i.

两座塔的位置保证都是安全点。

若存在一条连接两座塔的连续路径,并且路径上的每一个点都是安全点,则两座塔能够正常通信。

路径可以是任意连续曲线,不要求为直线或折线。

请判断两座塔能否正常通信。

输入格式

第一行包含五个整数:

x1 y1 x2 y2 N

满足:

106x1<x2106,-10^6\le x_1<x_2\le10^6, 106y1<y2106,-10^6\le y_1<y_2\le10^6, 0N1000.0\le N\le1000.

接下来 NN 行,每行包含三个整数:

xi yi ri

表示一个热点的圆心和半径,满足:

106xi,yi106,-10^6\le x_i,y_i\le10^6, 1ri2000000.1\le r_i\le2\,000\,000.

保证不存在两个热点具有完全相同的圆心。

输出格式

若两座塔能够通过某条安全路径通信,输出:

YES

否则输出:

NO

样例 1

输入

-15 -10 15 10 5
-20 7 9
-2 3 6
8 -3 4
-1 -8 3
-9 -1 3

输出

YES

样例 2

输入

2 10 18 30 3
10 20 5
10 29 5
10 11 5

输出

NO

样例 3

输入

2 10 18 30 3
10 20 5
10 25 5
10 10 5

输出

YES