首页 > 试题广场 >

跳柱子

[编程题]跳柱子
  • 热度指数:2996 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小易有根柱子,第根柱子的高度为。一开始小易站在第一根柱子上。小易能从第根柱子跳到第根柱子,当且仅当。其中为指定的一个数字。
另外小易拥有一次释放超能力的机会。这个超能力能让小易从柱子跳到任意满足的柱子而无视柱子高度的限制。
现在小易想知道,小易是否能到达第根柱子。

输入描述:
第一行数据组数
对于每组数据,第一行数字,接下来一行个数字表示.



输出描述:
对于每组数据,输出YES或NO
示例1

输入

1
5 3
6 2 4 3 8

输出

YES
示例2

输入

1
5 2
1 8 2 3 4

输出

NO
t = int(input())   #case0%,哪位精通python的大神可以给我这个小白指点一下为什么错了
res = []
k = []
for i in range(t):
    l = list(map(int, input().split(' ')))
    k.append(l[1])
    res.append(list(map(int, input().split(' '))))

def fly(li, s):
    pos = 0
    a = 1
    while pos < len(li) - 1:
        if li[pos] >= li[pos + 1]:
            pos = pos + 1
        elif a == 1:
            pos = pos + s
            a = 0
        else:
            print('NO')
            break
    if pos >= len(li) - 1:
        print('YES')

for i in range(t):
    fly(res[i], k[i])
发表于 2020-08-07 23:20:05 回复(0)