Two Permutations (Codeforces 1761A)
Tags: Others, brute force

You are given three integers $$$n$$$, $$$a$$$, and $$$b$$$. Determine if there exist two permutations $$$p$$$ and $$$q$$$ of length $$$n$$$, for which the following conditions hold:  The length of the longest common prefix of $$$p$$$ and $$$q$$$ is $$$a$$$.  The length of the longest common suffix of $$$p$$$ and $$$q$$$ is $$$b$$$. A permutation of length $$$n$$$ is an array containing each integer from $$$1$$$ to $$$n$$$ exactly once. For example, $$$[2,3,1,5,4]$$$ is a permutation, but $$$[1,2,2]$$$ is not a permutation ($$$2$$$ appears twice in the array), and $$$[1,3,4]$$$ is also not a permutation ($$$n=3$$$ but there is $$$4$$$ in the array).

Input: Each test contains multiple test cases. The first line contains a single integer $$$t$$$ ($$$1\leq t\leq 10^4$$$) — the number of test cases. The description of test cases follows.The only line of each test case contains three integers $$$n$$$, $$$a$$$, and $$$b$$$ ($$$1\leq a,b\leq n\leq 100$$$).

Output: For each test case, if such a pair of permutations exists, output "Yes"; otherwise, output "No". You can output each letter in any case (upper or lower).

Note: In the first test case, $$$[1]$$$ and $$$[1]$$$ form a valid pair.In the second test case and the third case, we can show that such a pair of permutations doesn't exist.In the fourth test case, $$$[1,2,3,4]$$$ and $$$[1,3,2,4]$$$ form a valid pair.

Sample Inputs:
4
1 1 1
2 1 2
3 1 1
4 1 1

Sample Outputs:
Yes
No
No
Yes

Solution (Python):
for sdr in [*open(0)][1:]:
    (x, y, z) = map(int, sdr.split())
    print('YNeos'[y & z < x < y + z + 2::2])

Solution (Python):
def can_construct_permutations(n, a, b):
    if n == a and a == b:
        return 'Yes'
    if n - a - b >= 2:
        return 'Yes'
    else:
        return 'No'
ans = []
t = int(input())
for _ in range(t):
    (n, a, b) = map(int, input().split())
    result = can_construct_permutations(n, a, b)
    ans.append(result)
for i in range(len(ans)):
    print(ans[i])

Solution (Python):
from sys import stdin, stdout, setrecursionlimit
read = stdin.readline
write = stdout.write

def solve():
    (n, a, b) = map(int, read().split())
    if n == 1:
        print('YES')
        return
    curr = a + b
    if a == b and a == n or n - curr >= 2:
        print('YES')
    else:
        print('NO')

def main():
    t = int(input())
    for _ in range(t):
        solve()
main()