結果

問題 No.3798 algo to goal
ユーザー masasu
提出日時 2026-11-13 23:57:26
言語 PyPy3
(8.0.1 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,410 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 81 ms
コンパイル使用メモリ 64,268 KB
実行使用メモリ 135,656 KB
最終ジャッジ日時 2026-11-13 23:57:42
合計ジャッジ時間 14,468 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 11 WA * 29
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

# https://github.com/robe2222555/atcoder-lib/blob/main/template/python/main.py
import sys
input = lambda: sys.stdin.readline().rstrip()
def LI(): return list(map(int, input().split()))
def II(): return int(input())
INF = 1<<60

def test():
	n = 10
	st = list(range(n))
	stk = [st]
	S = set()
	S.add(tuple(st))
	while stk:
		X = stk.pop()
		for i in range(n-3):
			X[i],X[i+1],X[i+2],X[i+3] = X[i+2],X[i+3],X[i],X[i+1]
			if not tuple(X) in S:
				S.add(tuple(X))
				stk.append(X[:])
			X[i],X[i+1],X[i+2],X[i+3] = X[i+2],X[i+3],X[i],X[i+1]
	print(len(S))

	T = set()
	for X in S:
		if X[::2] == tuple(range(0,n,2)):
			T.add(tuple(X[1::2]))
	print(sorted(T))
	print(len(T))
	return

def solve():
	#test()
	#return
	S = input()
	T = input()
	if sorted(list(S[::2])) != sorted(list(T[::2])):
		print("No")
		return

	if sorted(list(S[1::2])) != sorted(list(T[1::2])):
		print("No")
		return

	def f(X:str):
		N = len(S)
		even = 0
		cnt = [0]*26
		for i in range(0, N, 2):
			tmp = ord(X[i])-ord("a")
			for j in range(tmp+1, 26):
				even = (even + cnt[j])%2
			cnt[tmp] += 1
		
		odd = 0
		cnt = [0]*26
		for i in range(1, N, 2):
			tmp = ord(X[i])-ord("a")
			for j in range(tmp+1, 26):
				odd = (odd + cnt[j])%2
			cnt[tmp] += 1

		return even^odd
	if f(S)==f(T):
		print("Yes")
	else:
		print("No")
	return


def main():
	T = II()
	for _ in range(T):
		solve()
	return


if __name__ == '__main__':
	main()
0