Submission details
Task:Swapping letters
Sender:Wu xiaobo
Submission time:2020-09-19 15:09:58 +0300
Language:Python3 (CPython3)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.02 sdetails
#2ACCEPTED0.02 sdetails
#3ACCEPTED0.02 sdetails
#4--details
#5--details
#6ACCEPTED0.18 sdetails
#7ACCEPTED0.03 sdetails
#8--details
#9ACCEPTED0.03 sdetails
#10ACCEPTED0.03 sdetails

Code

n = int(input())

forbidden = {}
for _ in range(n):
    a, b = input().split()
    if a not in forbidden:
        forbidden[a] = {b}
    else:
        forbidden[a].add(b)

    if b not in forbidden:
        forbidden[b] = {a}
    else:
        forbidden[a].add(a)

x = input()
y = input()

if len(x) != len(y):
    print('NO')
else:
    # letters = set(x)
    # for l in letters:
    #     if x.count(l) != y.count(l):
    #         print('NO')
    #         break
    # else:
    for i in range(len(x)):
        if x[i] == y[i]:
            continue
        ind = i + x[i+1:].index(y[i]) + 1
        for j in range(i, ind):
            if y[i] in forbidden and x[j] in forbidden[y[i]]:
                break
        else:
            x = x[:i] + x[ind] + x[i:ind] + x[ind + 1:]
            continue
        print('NO')
        break
    else:
        print('YES')

Test details

Test 1

Verdict: ACCEPTED

input
5
a b
b c
c d
d e
...

correct output
YES

user output
YES

Test 2

Verdict: ACCEPTED

input
2
a b
b c
acbbaca
cabbaac

correct output
YES

user output
YES

Test 3

Verdict: ACCEPTED

input
2
a b
b c
acbbaca
baccaab

correct output
NO

user output
NO

Test 4

Verdict:

input
10
d c
e b
f y
h q
...

correct output
YES

user output
(empty)

Test 5

Verdict:

input
10
a i
a l
d a
g h
...

correct output
NO

user output
(empty)

Test 6

Verdict: ACCEPTED

input
325
a b
a e
a f
a g
...

correct output
YES

user output
YES

Test 7

Verdict: ACCEPTED

input
325
a c
a e
a g
a h
...

correct output
NO

user output
NO

Test 8

Verdict:

input
0
dlkinfmdyjaofxbccwhhbxzartqwdr...

correct output
YES

user output
(empty)

Test 9

Verdict: ACCEPTED

input
0
bxisdrdpgcsnnvhnfgimivzqpqjwqc...

correct output
NO

user output
NO

Test 10

Verdict: ACCEPTED

input
0
mrwduerojcguvxzmbomfsainvqehsl...

correct output
NO

user output
NO