結果
問題 |
No.517 壊れたアクセサリー
|
ユーザー |
![]() |
提出日時 | 2024-01-20 00:49:05 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 33 ms / 2,000 ms |
コード長 | 1,519 bytes |
コンパイル時間 | 513 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2024-09-28 05:19:07 |
合計ジャッジ時間 | 1,843 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 15 |
ソースコード
from collections import deque N=int(input()) A=[input() for i in range(N)] M=int(input()) B=[input() for i in range(M)] AQ=deque() BQ=deque() ANS=[] while (A and B) or AQ or BQ: if AQ and BQ: if AQ[0] and BQ[0]: s=AQ.popleft() BQ.popleft() ANS.append(s) continue else: print(-1) exit() if AQ: s=AQ[0] ind=-1 for i in range(len(B)): if B[i][0]==s: ind=i break if ind==-1: print(-1) exit() else: BQ=deque(B[ind]) B.pop(ind) continue if BQ: s=BQ[0] ind=-1 for i in range(len(A)): if A[i][0]==s: ind=i break if ind==-1: print(-1) exit() else: AQ=deque(A[ind]) A.pop(ind) continue SA=set() SB=set() for a in A: SA.add(a[0]) for b in B: SB.add(b[0]) SS=SA & SB if len(SS)==1: s=list(SS)[0] for i in range(len(A)): if A[i][0]==s: ind=i break AQ=deque(A[ind]) A.pop(ind) for i in range(len(B)): if B[i][0]==s: ind=i break BQ=deque(B[ind]) B.pop(ind) else: print(-1) exit() print("".join(ANS))