Problem p02557 (python)

Fixed submission:
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

AB = [(a, i, 0) for i, a in enumerate(A)] + [(b, i, 1) for i, b in enumerate(B)]
AB.sort()

X = AB[:N]
Y = AB[N:]

if any(x[0] == y[0] for x, y in zip(X, Y)):
    print('No')
    exit()

swapA = []
swapB = []
ans = [-1] * N

for (_, i, sx), (_, j, sy) in zip(X, Y):
    if sx == sy == 0:
        swapA.append((i, j))
    elif sx == sy == 1:
        swapB.append((i, j))
    else:
        if sx == 0:
            ans[i] = B[j]
        else:
            ans[j] = B[i]

for (i, j), (x, y) in zip(swapA, swapB):
    ans[i] = B[x]
    ans[j] = B[y]

    if A[i] == ans[i] or A[j] == ans[j]:
        ans[i], ans[j] = ans[j], ans[i]

print('Yes')
print(*ans)

Buggy submission (verdict: Runtime Error):
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

AB = [(a, i, 0) for i, a in enumerate(A)] + [(b, i, 1) for i, b in enumerate(B)]
AB.sort()

X = AB[:N]
Y = AB[N:]

if any(x[0] == y[0] for x, y in zip(X, Y)):
    print('No')
    exit()

ans = [-1] * N
swap = []

for (_, i, sx), (_, j, sy) in zip(X, Y):
    if sx == sy:
        swap.append((min(i, j), max(i, j)))
    else:
        if sx == 0:
            ans[i] = B[j]
        else:
            ans[j] = B[i]

if len(swap) != len(set(swap)):
    1 / 0

print('No')

Buggy submission (verdict: Runtime Error):
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

AB = [(a, i, 0) for i, a in enumerate(A)] + [(b, i, 1) for i, b in enumerate(B)]
AB.sort()

X = AB[:N]
Y = AB[N:]

if any(x[0] == y[0] for x, y in zip(X, Y)):
    print('No')
    exit()

ans = [-1] * N
swap = []

for (_, i, sx), (_, j, sy) in zip(X, Y):
    if sx == sy:
        swap.append((min(i, j), max(i, j)))
    else:
        if sx == 0:
            ans[i] = B[j]
        else:
            ans[j] = B[i]

from collections import Counter
cnt = list(Counter(swap).values())

assert cnt.count(1) == 0, 'error'

print('Yes')
print(*ans)

Buggy submission (verdict: Runtime Error):
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

AB = [(a, i, 0) for i, a in enumerate(A)] + [(b, i, 1) for i, b in enumerate(B)]
AB.sort()

X = AB[:N]
Y = AB[N:]

if any(x[0] == y[0] for x, y in zip(X, Y)):
    print('No')
    exit()

ans = [-1] * N
swap = []

for (_, i, sx), (_, j, sy) in zip(X, Y):
    if sx == sy:
        swap.append((min(i, j), max(i, j)))
    else:
        if sx == 0:
            ans[i] = B[j]
        else:
            ans[j] = B[i]

from collections import Counter
assert max(Counter(swap).values()) == 2 or len(swap) == 0, 'error'

print('Yes')
print(*ans)

Buggy submission (verdict: Runtime Error):
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

AB = [(a, i, 0) for i, a in enumerate(A)] + [(b, i, 1) for i, b in enumerate(B)]
AB.sort()

X = AB[:N]
Y = AB[N:]

if any(x[0] == y[0] for x, y in zip(X, Y)):
    print('No')
    exit()

ans = [-1] * N
swap = []

for (_, i, sx), (_, j, sy) in zip(X, Y):
    if sx == sy:
        swap.append((min(i, j), max(i, j)))
    else:
        if sx == 0:
            ans[i] = B[j]
        else:
            ans[j] = B[i]

from collections import Counter
assert max(Counter(swap).values()) == 2, 'error'

print('Yes')
print(*ans)

Buggy submission (verdict: Runtime Error):
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

AB = [(a, i, 0) for i, a in enumerate(A)] + [(b, i, 1) for i, b in enumerate(B)]
AB.sort()

X = AB[:N]
Y = AB[N:]

if any(x[0] == y[0] for x, y in zip(X, Y)):
    print('No')
    exit()
print('No')

1 / 0

ans = [-1] * N

for (x, i, sx), (y, j, sy) in zip(X, Y):
    if sx == sy:
        if A[i] == B[i] or A[j] == B[j]:
            ans[i] = B[j]
            ans[j] = B[i]
        else:
            ans[i] = B[i]
            ans[j] = B[j]
    else:
        if sx == 1:
            i, j = j, i
        ans[i] = B[j]

assert not ans.count(-1), 'undefined'

print('Yes')
print(*ans)

Buggy submission (verdict: Runtime Error):
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

AB = [(a, i, 0) for i, a in enumerate(A)] + [(b, i, 1) for i, b in enumerate(B)]
AB.sort()

X = AB[:N]
Y = AB[N:]

if any(x[0] == y[0] for x, y in zip(X, Y)):
    print('No')
    exit()

1 / 0

ans = [-1] * N

for (x, i, sx), (y, j, sy) in zip(X, Y):
    if sx == sy:
        if A[i] == B[i] or A[j] == B[j]:
            ans[i] = B[j]
            ans[j] = B[i]
        else:
            ans[i] = B[i]
            ans[j] = B[j]
    else:
        if sx == 1:
            i, j = j, i
        ans[i] = B[j]

assert not ans.count(-1), 'undefined'

print('Yes')
print(*ans)

Buggy submission (verdict: Runtime Error):
from collections import Counter

N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

cntA = Counter(A)
cntB = Counter(B)

V = set(A) & set(B)
mx = max(min(cntA[v], cntB[v]) for v in V)

if mx > N // 2:
    print('No')
    exit()

print('No')

Buggy submission (verdict: Runtime Error):
from collections import Counter

N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

cntA = Counter(A)
cntB = Counter(B)

V = set(A) & set(B)
mx = max(min(cntA[v], cntB[v]) for v in V)

if mx > N // 2:
    print('No')
    exit()

a = 1 / 0
print('No')