結果
| 問題 | 
                            No.517 壊れたアクセサリー
                             | 
                    
| コンテスト | |
| ユーザー | 
                             titia
                         | 
                    
| 提出日時 | 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))
            
            
            
        
            
titia