CF1055G Jellyfish Nightmare

题目描述

### 题意 Bob 最近长胖了。为了减轻体重, Bob 决定定期在游泳池里游泳。然而,在他第一次去游泳池的前一天,他做了一个奇怪的梦。在这个梦中, Bob 正沿着泳池的一条泳道游泳,但也有一些水母在他周围游泳。值得一提的是,水母一直是 Bob 最深刻的童年恐惧之一。 让我们为 Bob 的梦假设以下物理模型: 1. 游泳池的泳道是平面上直线 $x=0$ 和直线 $x=w$ 之间的区域, Bob 不能游出泳道,但是他可以触碰边界。 2. 水母非常小,但在 Bob 的梦中,它们非常迅速。每只水母都有它的活动区域。这些区域是各种半径的圆,水母坐在它们的中心。两个水母的活动区域可能重叠,一个活动区域甚至可能完全包含在另一个区域内。 3. Bob 具有凸多边形的形状。 4. 不幸的是,Bob 的超重使他非常笨拙,故他在游泳时无法旋转身体。即整个过程多边形可以向任何方向运动,但是**不能旋转**。 5. 每当 Bob 游进水母的活动区域时,它会立即注意到他刺痛他,使他非常痛苦。我们认为只有凸多边形和圆的交为正面积(S>0)时才算进入水母的活动区域。 6. 一旦水母刺伤了 Bob,它就会愉快地游走,不再对 Bob 造成任何威胁。 Bob 想要游到终点且被刺的次数最少,他将从直线 $y=-h$ 出发,在直线 $y=h$ 结束 ,$h=10^{10}$

输入格式

第一行两个整数 $n$ 和 $w$ $(3\le n\le 200,1\le w\le 30000)$,表示多边形的点数和泳道的宽度。 接下来按照逆时针顺序, $n$ 行每行两个整数 $x_i,y_i(0\le x_i\le w,0\le y_i\le 30000)$ ,表示多边形的一个顶点。 然后 $m$ 行,每行三个整数 $x_i,y_i,r_i(0\le x_i \le w,0\le y_i,r_i\le30000)$,表示水母所在的圆心和圆的半径,保证任意两个水母的圆心不同。

输出格式

一个整数,表示 Bob 最少被刺几次。

说明/提示

Visualization of the possible solutions to the first and the second sample test cases are below: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1055G/b0e3cf7a361dcbd9f81fc7c8354706f528b655c8.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1055G/42d25ac721424a530c09ba9f2c685e0fc72933ad.png)