結果
| 問題 | No.3798 algo to goal |
| ユーザー |
|
| 提出日時 | 2026-11-09 00:42:06 |
| 言語 | PyPy3 (8.0.1 + ACL) |
| 結果 |
TLE
不安定
|
| 実行時間 | - |
| コード長 | 1,597 bytes |
| 記録 | |
| コンパイル時間 | 89 ms |
| コンパイル使用メモリ | 64,128 KB |
| 実行使用メモリ | 96,576 KB |
| 最終ジャッジ日時 | 2026-11-13 22:05:26 |
| 合計ジャッジ時間 | 20,195 ms |
|
ジャッジサーバーID (参考情報) |
judge4_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 20 TLE * 2 -- * 18 |
ソースコード
from collections import defaultdict
Q = int(input())
for case in range(Q):
S = input()
T = input()
N = len(S)
S1 = ""
S2 = ""
T1 = ""
T2 = ""
countS1 = defaultdict(int)
countS2 = defaultdict(int)
countT1 = defaultdict(int)
countT2 = defaultdict(int)
for i in range(N):
if i % 2 == 0:
S1 += S[i]
T1 += T[i]
countS1[S[i]] += 1
countT1[T[i]] += 1
else:
S2 += S[i]
T2 += T[i]
countS2[S[i]] += 1
countT2[T[i]] += 1
if (countS1 != countT1) or (countS2 != countT2):
print("No")
continue
flag = False
for [key, val] in countS1.items():
if val >= 2:
flag = True
for [key, val] in countS2.items():
if val >= 2:
flag = True
if flag:
print("Yes")
continue
invS1 = 0
invS2 = 0
invT1 = 0
invT2 = 0
for i in range(len(S1)):
for j in range(i + 1, len(S1)):
if ord(S1[i]) > ord(S1[j]):
invS1 += 1
if ord(T1[i]) > ord(T1[j]):
invT1 += 1
for i in range(len(S2)):
for j in range(i + 1, len(S2)):
if ord(S2[i]) > ord(S2[j]):
invS2 += 1
if ord(T2[i]) > ord(T2[j]):
invT2 += 1
diff1 = abs(invS1 - invT1)
diff2 = abs(invS2 - invT2)
if (diff1 % 2 == 0) and (diff2 % 2 == 0):
print("Yes")
elif (diff1 % 2 == 1) and (diff2 % 2 == 1):
print("Yes")
else:
print("No")