Beautiful Sequence (Codeforces 1810A)
Tags: Greedy, brute force

A sequence of $$$m$$$ integers $$$a_{1}, a_{2}, \ldots, a_{m}$$$ is good, if and only if there exists at least one $$$i$$$ ($$$1 \le i \le m$$$) such that $$$a_{i} = i$$$. For example, $$$[3,2,3]$$$ is a good sequence, since $$$a_{2} = 2$$$, $$$a_{3} = 3$$$, while $$$[3,1,1]$$$ is not a good sequence, since there is no $$$i$$$ such that $$$a_{i} = i$$$.A sequence $$$a$$$ is beautiful, if and only if there exists at least one subsequence of $$$a$$$ satisfying that this subsequence is good. For example, $$$[4,3,2]$$$ is a beautiful sequence, since its subsequence $$$[4,2]$$$ is good, while $$$[5,3,4]$$$ is not a beautiful sequence.A sequence $$$b$$$ is a subsequence of a sequence $$$a$$$ if $$$b$$$ can be obtained from $$$a$$$ by the deletion of several (possibly, zero or all) elements. Now you are given a sequence, check whether it is beautiful or not.

Input: Each test contains multiple test cases. The first line contains a single integer $$$t$$$ ($$$1 \le t \le 500$$$) — the number of test cases. Their description follows.The first line of each test case contains an integer $$$n$$$ ($$$1 \le n \le 100$$$) — the length of the given sequence.The second line of each test case contains $$$n$$$ integers $$$a_{1}, a_{2}, \ldots, a_{n}$$$ ($$$1 \le a_{i} \le 10^9$$$), representing the sequence.

Output: For each test case, output "YES" or "NO"(without quotes) in one line, representing whether the given sequence is beautiful.You can output the answer in any case (upper or lower). For example, the strings "yEs", "yes", "Yes", and "YES" will be recognized as positive responses.

Note: In the first test case, the good subsequence is $$$b=[3,2]$$$, where $$$b_{2} = 2$$$.In the second test case, the good subsequence is $$$b=[2,4,3]$$$, where $$$b_{3} = 3$$$.In the fourth test case, the good subsequence is $$$b=[1]$$$, where $$$b_{1} = 1$$$.In the fifth test case, the good subsequence is $$$b=[2,2]$$$, where $$$b_{2} = 2$$$.

Sample Inputs:
7
3
3 2 1
4
2 4 3 5
5
2 3 5 5 6
2
3 1
5
2 4 5 2 3
4
5 6 7 8
6
6 5 4 3 2 1

Sample Outputs:
YES
YES
NO
YES
YES
NO
YES

Solution (Python):
for s in [*open(0)][2::2]:
    print('YNEOS'[all((i < int(x) for (i, x) in enumerate(s.split(), 1)))::2])

Solution (Python):
def main():
    t = int(input())
    while t > 0:
        t -= 1
        n = int(input())
        a = list(map(int, input().split()))
        for i in range(n):
            if i + 1 >= a[i]:
                print('YES')
                break
        else:
            print('NO')
if __name__ == '__main__':
    main()

Solution (Python):
t = int(input())
for _ in range(t):
    n = int(input())
    arr = list(map(int, input().split(' ')))
    Found = False
    for i in range(n):
        if arr[i] == i + 1 or i >= arr[i]:
            Found = True
            break
    print('YES' if Found else 'NO')