結果

問題 No.3587 Too Good to Swap
コンテスト
ユーザー ゼット
提出日時 2026-07-10 22:30:02
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
RE  
実行時間 -
コード長 1,400 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 226 ms
コンパイル使用メモリ 95,984 KB
実行使用メモリ 139,956 KB
最終ジャッジ日時 2026-07-10 22:30:22
合計ジャッジ時間 7,286 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 44 RE * 5
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

Q=int(input())
for _ in range(Q):
  S=input()
  T=input()
  N=len(S)
  if S==T:
    print('Yes')
    continue
  A=''.join(sorted(S))
  B=''.join(sorted(T))
  if A!=B:
    print('No')
    continue
  ans0=False
  posd=-1
  posg=-1
  for i in range(N):
    if S[i]=='d':
      if posg>=0 and posg>=i-2:
        ans0=True
      posd=i
    if S[i]=='g':
      if posd>=0:
        ans0=True
      posg=i
  ans1=False
  posd=-1
  posg=-1
  for i in range(N):
    if T[i]=='d':
      if posg>=0 and posg>=i-2:
        ans1=True
      posd=i
    if T[i]=='g':
      if posd>=0:
        ans1=True
      posg=i
  if ans0==True and ans1==True:
    print('Yes')
    continue
  if ans0==True:
    p=[1]
    print(p[1])
    l=-1
    r=-1
    for i in range(N):
      if T[i]=='g':
        l=i
    for i in range(N-1,-1,-1):
      if T[i]=='d':
        r=i
    if l==-1 or r==-1:
      print('No')
      continue
    if r-l<=2:
      print('Yes')
    else:
      print('No')
    continue
  h0=[]
  h1=[]
  p0=[]
  p1=[]
  for i in range(N):
    if S[i]!='o':
      h0.append(S[i])
      p0.append(i)
    if T[i]!='o':
      h1.append(T[i])
      p1.append(i)
  if h0!=h1:
    print('No')
    continue
  ans=True
  for i in range(len(p0)-1):
    a,b=p0[i],p0[i+1]
    c,d=p1[i],p1[i+1] 
    if h0[i]=='g' and h0[i+1]=='d' and (b-a-2)*(d-c-2)<0:
      ans=False
  if ans==True:
    print('Yes')
  else:
    print('No')
0