题目描述
一位冒险者在一片危险的森林中探险。森林里有一条漂着浮木的河流,浮木的位置分布不均,但只有踩在浮木上才能安全穿越。冒险者可以从一块浮木跳到另一块,但不能掉入河中。
浮木的位置由一个列表 woods 表示(按距离岸边的顺序从小到大排列)。冒险者起初站在第一块浮木上,并且第一步只能跳跃 1 个单位的距离。
之后,如果冒险者上一次跳跃了 k 个单位,那么他下一次跳跃的距离只能选择为 k-1、k 或 k+1 个单位(注意跳跃距离必须为正数)。冒险者只能向前跳跃,无法返回。
现在的问题是,冒险者能否通过这条河流并最终跳到最后一块浮木上?
输入
输入包含n个测试用例
测试用例的第一行为整数 n ,有n个测试用例
接下来的2n行输入表示n个用例
第一行表示有该测试用例中有多少个浮木m
表示个整数 w1, w2, …, wm ,表示每个浮木的位置。
输出
如果能跳到最后的浮木上,输出 true ,否则输出 false (其他任何输出都不接受)
示例 1
input
2
8
0 1 3 5 6 8 12 17
8
0 1 2 3 4 8 9 11
output
true
false
解释
对于第一个用例:冒险者可以成功过河,按照如下方案跳跃:跳 1 个单位到第 2 块浮木, 然后跳 2 个单位到第 3 块浮木, 接着 跳 2 个单位到第 4 块浮木, 然后跳 3 个单位到第 6 块浮木, 跳 4 个单位到第 7 块浮木, 最后,跳 5 个单位到第 8 个浮木(即最后一块浮木)。
对于第二个用例:这是因为第 5 和第 6 个浮木之间的间距太大,没有可选的方案供冒险者跳跃过去。
数据范围
5 < n < 500
10 < m < 1000
