Showstopper (Codeforces 1798A)
Tags: Greedy, sortings

You are given two arrays $$$a_1, a_2, \ldots, a_n$$$ and $$$b_1, b_2, \ldots, b_n$$$.In one operation, you can choose any integer $$$i$$$ from $$$1$$$ to $$$n$$$ and swap the numbers $$$a_i$$$ and $$$b_i$$$.Determine whether, after using any (possibly zero) number of operations, the following two conditions can be satisfied simultaneously:  $$$a_n = \max(a_1, a_2, \ldots, a_n)$$$,  $$$b_n = \max(b_1, b_2, \ldots, b_n)$$$. Here $$$\max(c_1, c_2, \ldots, c_k)$$$ denotes the maximum number among $$$c_1, c_2, \ldots, c_k$$$. For example, $$$\max(3, 5, 4) = 5$$$, $$$\max(1, 7, 7) = 7$$$, $$$\max(6, 2) = 6$$$.

Input: Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 200$$$). The description of the test cases follows.The first line of each test case contains a single integer $$$n$$$ ($$$1 \le n \le 100$$$) — the length of the arrays.The second line of each test case contains $$$n$$$ integers $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le 100$$$) — elements of the first array.The third line of each test case contains $$$n$$$ integers $$$b_1, b_2, \ldots, b_n$$$ ($$$1 \le b_i \le 100$$$) — elements of the second array.

Output: For each test case, print "Yes" if after using any (possibly zero) number of operations the conditions described above are satisfied. Otherwise, print "No".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, you can swap the numbers $$$a_3$$$ and $$$b_3$$$, after which the array $$$a$$$ becomes equal to $$$[7, 9, 9]$$$, and the array $$$b$$$ becomes equal to $$$[7, 6, 7]$$$, and both conditions are met.In the second test case, it can be proved that it is impossible to satisfy both conditions.In the third test case, you can swap the numbers $$$a_1$$$ and $$$b_1$$$, after which the array $$$a$$$ becomes equal to $$$[99, 99]$$$, and the array $$$b$$$ becomes equal to $$$[100, 100]$$$, and both conditions are satisfied.In fifth test case, you can swap $$$a_7$$$ and $$$b_7$$$, $$$a_8$$$ and $$$b_8$$$, $$$a_9$$$ and $$$b_9$$$, after which the array $$$a$$$ becomes equal to $$$[1, 2, 3, 4, 5, 6, 6, 6, 6]$$$, and the array $$$b$$$ becomes equal to $$$[9, 9, 9, 9, 9, 9, 7, 8, 9]$$$, and both conditions are satisfied.

Sample Inputs:
7
3
7 9 7
7 6 9
4
10 10 15 15
10 16 15 15
2
100 99
99 100
1
1
1
9
1 2 3 4 5 6 7 8 9
9 9 9 9 9 9 6 6 6
7
1 1 2 2 1 1 2
1 2 1 2 1 2 1
2
30 4
5 30

Sample Outputs:
Yes
No
Yes
Yes
Yes
No
No

Solution (Python):
t = int(input())
for k in range(t):
    n = int(input())
    a = list(map(int, input().split()))
    b = list(map(int, input().split()))
    for i in range(n):
        if a[i] < b[i]:
            (a[i], b[i]) = (b[i], a[i])
    if a[-1] == max(a) and b[-1] == max(b):
        print('Yes')
    else:
        print('No')

Solution (Python):
def solve(a, b, n):
    for i in range(n):
        if a[i] > a[n - 1]:
            (a[i], b[i]) = (b[i], a[i])
        if b[i] > b[n - 1]:
            (b[i], a[i]) = (a[i], b[i])
        if a[i] > a[n - 1] or b[i] > b[n - 1]:
            return 'NO'
    return 'YES'

def main():
    ans = []
    t = int(input())
    for _ in range(t):
        n = int(input())
        a = list(map(int, input().split()))
        b = list(map(int, input().split()))
        ans.append(solve(a, b, n))
    for i in ans:
        print(i)
if __name__ == '__main__':
    main()

Solution (Python):
for _ in range(int(input())):
    n = int(input())
    a = [int(x) for x in input().split()]
    b = [int(x) for x in input().split()]
    for i in range(n):
        if a[i] > b[i]:
            (a[i], b[i]) = (b[i], a[i])
    if max(a) == a[-1] and max(b) == b[-1]:
        print('YES')
    else:
        print('NO')