Task: | Swapping letters |
Sender: | Wu xiaobo |
Submission time: | 2020-09-20 01:28:41 +0300 |
Language: | Python3 (PyPy3) |
Status: | READY |
Result: | TIME LIMIT EXCEEDED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.05 s | details |
#2 | ACCEPTED | 0.05 s | details |
#3 | ACCEPTED | 0.05 s | details |
#4 | ACCEPTED | 0.24 s | details |
#5 | ACCEPTED | 0.21 s | details |
#6 | TIME LIMIT EXCEEDED | -- | details |
#7 | ACCEPTED | 0.60 s | details |
#8 | ACCEPTED | 0.19 s | details |
#9 | WRONG ANSWER | 0.20 s | details |
#10 | WRONG ANSWER | 0.22 s | details |
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') # import profile # # def main(): # with open('./test_input.txt', 'r') as f: # n = int(f.readline()) # forbidden = [] # for _ in range(n): # a, b = f.readline().split() # forbidden.append([a, b]) # # x = f.readline().strip() # y = f.readline().strip() # import time # start = time.time() n = int(input()) forbidden = [] for _ in range(n): a, b = input().split() forbidden.append([a, b]) x = input() y = input() # print(x) # print(y) letters = 'abcdefghijklmnopqrstuvwxyz' x_letters = {l: [] for l in letters} y_letters = {l: [] for l in letters} for i, l in enumerate(x): x_letters[l].append(i) for i, l in enumerate(y): y_letters[l].append(i) # ta = time.time() # print(ta - start) # if len(x) != len(y): # print('NO') # else: for a, b in forbidden: ind_x = sorted(x_letters[a] + x_letters[b]) ind_y = sorted(y_letters[a] + y_letters[b]) for i in range(len(ind_x)): if x[ind_x[i]] != y[ind_y[i]]: break else: continue print('NO') break else: print('YES') # end = time.time() # print(end - start) # profile.run('main()')
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: ACCEPTED
input |
---|
10 d c e b f y h q ... |
correct output |
---|
YES |
user output |
---|
YES |
Test 5
Verdict: ACCEPTED
input |
---|
10 a i a l d a g h ... |
correct output |
---|
NO |
user output |
---|
NO |
Test 6
Verdict: TIME LIMIT EXCEEDED
input |
---|
325 a b a e a f a g ... |
correct output |
---|
YES |
user output |
---|
(empty) |
Test 7
Verdict: ACCEPTED
input |
---|
325 a c a e a g a h ... |
correct output |
---|
NO |
user output |
---|
NO |
Test 8
Verdict: ACCEPTED
input |
---|
0 dlkinfmdyjaofxbccwhhbxzartqwdr... |
correct output |
---|
YES |
user output |
---|
YES |
Test 9
Verdict: WRONG ANSWER
input |
---|
0 bxisdrdpgcsnnvhnfgimivzqpqjwqc... |
correct output |
---|
NO |
user output |
---|
YES |
Test 10
Verdict: WRONG ANSWER
input |
---|
0 mrwduerojcguvxzmbomfsainvqehsl... |
correct output |
---|
NO |
user output |
---|
YES |