#846. 逃离口木中

逃离口木中

背景

很久很久以前,机房里流传着【口木中】的传说...

“不要在21:20之后进入机房...会带来不幸...”

可怕的传说在你的脑袋里回响,很不幸,现在的你已经走进了机房...

题目描述

将机房看作一个平面直角坐标系,你所在的位置是原点,x,yx,y表示出口所在的x坐标和y坐标。

由于灯光黑暗,在21:20之后,你只能在给定的灯光范围来移动,才能保证安全。但在这之前你可以随意移动。

对于每个灯光,都有 xi,yi,rix_{i},y_{i},r_{i}分别表示圆形灯光的圆心xi,yi(x_{i},y_{i})和半径rir_{i}。在21:20之后,你只能在给定的灯光范围内移动。但在这之前你可以随意移动。

现在请你给出程序,求出当你在时间 tt 时进入,你能否走出机房。若无法走出,输出-1,否则输出1.

输入

第一行。5个整数,x,y,n,t,vx,y,n,t,v,表示机房出口位置,灯光数量,当前时间和你的移动速度。时间已被化为每天的第t秒。

第2~n+1行,每行3个整数,xi,yi,rix_{i},y_{i},r_{i},表示灯光圆心坐标和半径

输出

输出一行一个整数,表示能否出机房。若无法逃出,输出-1,否则输出1.

注意

每个测试点含有多组数据,输入的第一行为T,表示有T组数据,剩下每组测试数据之间有一行空行。

样例

1
4 4 1 1 1277
4 4 1
-1

附赠一组大样例 点击下载

PS:最好开一下氧气优化,我本地跑能过,但不开氧气优化的时候在评测机上TLE...可能是C++11太老的的缘故...

数据范围与约定

本题为Subtask测试。

第一个点较小,有3组测试点,占分为20

第二个点适中,有10组测试点,占分为40 其中每组测试点有10个测试数据。n[1,500]n \in [1,500]

第三个点较大,有3组测试点,占分为40,其中每组测试点有20个测试数据,n[1000,6000]n \in [1000,6000]