Some birds are not meant to be caged, their feathers are just too bright. jl 很向往空中的飞鸟,于是,sz 找到了鞘翅送给 jl ,让他能够在高空翱翔。
假设天空是一个宽高无限的二维欧几里得平面, 轴方向从左往右递增, 轴方向从下往上递增, jl 当前的飞行方向有八个(左上、左、左下、下、右下、右、右上、上)。每秒初会朝着当前方向移动 次。方向为上、下、左、右其一时,移动的直线位移是 格;否则,移动的直线位移是 格。如图所示:
不幸的是,jl 飞行时正处于夜晚。天空中随机生成了若干敌对生物幻翼。定义平面两点 的距离为 。若幻翼当前与 jl 的距离小于等于 格,那么在 jl 移动后瞬间,幻翼会在上述八方向中选择一个方向移动,使得移动后在所有的选择里与 jl 的距离最小,可通俗理解为朝着 jl 的坐标跟踪移动。移动位移大小同上。特别地,如果此时幻翼恰好与 jl 在同一格,幻翼不会移动。
约定左上、左、左下、下、右下、右、右上、上 八个方向分别记作 。
记初始时间为第 秒初,jl 会飞行 秒,在第 秒末时,如果 jl 仍存活,他会让 sz 马上用指令将他传送回家,并获得一张一鸣的女装照作为奖励。
输入
输入包含多组测试用例。
第一行包含一个整数 ,表示你需要处理 组测试用例。
对于每个测试,首先输入一行一个五个整数 , , 代表 jl 飞行的总时长, 代表 jl 调整飞行方向的次数, 代表 jl 的初始飞行方向。 代表 jl 的初始坐标。
接下来输入 行,每行两个整数 ,代表 jl 在第 秒初移动前更改的飞行方向为 。保证 严格单调递增。
接下来输入一行一个整数 ,代表幻翼的个数。
接下来输入 行,每行两个整数 ,代表一个幻翼的初始坐标。
输出
对于每个测试,如果 jl 没能活过 秒,在一行内输出lose
,并输出一个整数 代表 jl 死亡时的秒数。若 jl 活过了 秒,在一行内输出survive
,并输出一个整数 代表 jl 对幻翼造成的总伤害数值。
样例
标准输入 复制文本 |
4 6 2 2 0 0 4 6 6 2 1 -1 0 1000 4 6 0 0 6 8 7 4 8 5 9 3 4 1 0 4 0 7 0 10 0 9 4 6 0 0 6 8 7 4 8 5 9 2 4 1 0 4 0 7 0 10 0 95 0 6 -64 0 1 64 0 |
标准输出 复制文本 |
survive 20 survive 56 lose 9 survive 0 |
提示
对第一个测试,在第 秒,jl 与幻翼战斗;在第 秒, jl 与幻翼战斗;在第 秒, jl 与幻翼战斗。前两次战斗造成 点伤害,但最后一次战斗时幻翼只有 点生命值,所以只造成了 点伤害。所以总伤害为 。
对第二个测试,在第 秒, jl 与第一只幻翼战斗;在第 秒, jl 与第二只幻翼战斗;在第 秒, jl 与第三只幻翼战斗;在第 秒, jl 与第四只幻翼战斗;在第 秒,jl 同时与前三只幻翼战斗;在第 秒, jl 与第四只幻翼战斗,之后再无战斗。有 秒发生过战斗,jl 一共扣除 点血,一共攻击 次,且伤害均为 ,所以总伤害为 。
对第三个测试,前 秒与第二个测试完全相同,在第 秒,jl 同时与四只幻翼战斗并死亡。
对第四个测试,前 秒幻翼与 jl 距离大于 ,幻翼不移动。从第 秒开始幻翼朝 jl 方向移动。在第 秒, jl 和幻翼坐标分别是 。自始至终他们未相遇,故总伤害为 。