#P16607. [GCPC2020]Jeopardised Journey

[GCPC2020]Jeopardised Journey

题目描述

小红帽的祖母所住的小屋已经十分破旧,需要拆除并重新建造。祖母希望把新屋建在森林中的某个林间空地上,并且希望小红帽往返时尽可能安全。

小红帽的家也位于一个林间空地中。大灰狼始终潜伏在某个林间空地里,并且只会在夜间更换位置。因此,在小红帽穿越森林的过程中,大灰狼会固定待在某一个未知的林间空地中。大灰狼不会位于小红帽的家,也不会位于祖母新屋所在的空地。

小红帽总是直接从一个林间空地走向另一个林间空地。在出发前,她会先用望远镜确认目标空地中是否有大灰狼:

  • 若看见大灰狼,她不会前往该空地;
  • 若无法看清目标空地,她同样不会前往该空地。

森林并不平坦,其中分布着一些山丘。若某座山丘阻挡了两个空地之间的视线,小红帽就无法看清另一个空地。即使两空地之间的视线仅与某座山丘相切,也视为被阻挡。

每座山丘都是一个完美的圆。与山丘相比,林间空地足够小,因此可将每个空地视为一个点。任意两座山丘互不相交,并且没有空地位于山丘内部或边界上。

若无论大灰狼位于哪个允许的空地,小红帽都一定能够找到一条从家到祖母新屋的路线,并且还能找到一条返回家的路线,则祖母认为该空地是安全的。

请找出所有适合祖母建造新屋的安全空地。

输入格式

第一行包含两个整数 g,hg,h2g20002\le g\le 20000h20000\le h\le 2000),分别表示林间空地数量和山丘数量。

林间空地编号为 1,2,,g1,2,\ldots,g,小红帽的家始终位于第 gg 个空地。祖母从其余空地中选择新屋位置。

接下来 gg 行,第 ii 行包含两个整数 xi,yix_i,y_i107xi,yi107-10^7\le x_i,y_i\le 10^7),表示第 ii 个空地的坐标。

接下来 hh 行,每行包含三个整数 x,y,rx,y,r107x,y107-10^7\le x,y\le 10^70<r1070<r\le 10^7),表示一座圆形山丘的圆心坐标和半径。

保证:

  • 任意两个空地的坐标不同;
  • 任意两座山丘没有公共点;
  • 没有空地位于山丘内部或边界上。

输出格式

按照升序输出所有安全空地的编号。

上图为样例 1。

上图为样例 2。

样例 1

输入

4 3
0 0
0 10
10 0
10 10
5 0 2
10 5 2
2 2 1

输出

2

样例 2

输入

7 5
0 0
10 10
10 -10
20 0
30 10
30 -10
40 0
10 4 1
6 -3 3
14 -3 3
20 10 4
30 0 4

输出

4 5 6