結果
問題 | No.2307 [Cherry 5 th Tune *] Cool 46 |
ユーザー |
|
提出日時 | 2023-05-19 22:00:18 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 733 ms / 2,000 ms |
コード長 | 2,214 bytes |
コンパイル時間 | 976 ms |
コンパイル使用メモリ | 82,352 KB |
実行使用メモリ | 172,440 KB |
最終ジャッジ日時 | 2024-12-21 02:34:55 |
合計ジャッジ時間 | 38,354 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 46 |
ソースコード
from collections import defaultdict for _ in range(int(input())): n, m = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) A.sort() B.sort() AD = defaultdict(int) for i in range(n): AD[A[i]] = i BD = defaultdict(int) for i in range(m): BD[B[i]] = i secter_set = set(A) & set(B) if n == 0: print("Yes") for i in range(m): print(f"Blue {B[i]}") continue if m == 0: print("Yes") for i in range(n): print(f"Red {A[i]}") continue if len(secter_set) == 0: print("No") continue print("Yes") i, j = 0, 0 red = True ANS = [] while len(secter_set) > 1: if red: a = A[i] ANS.append(f"Red {a}") i += 1 if a in secter_set: secter_set.remove(a) l = BD[a] ANS.append(f"Blue {a}") for k in range(j, l): ANS.append(f"Blue {B[k]}") j = l + 1 red = False else: b = B[j] ANS.append(f"Blue {b}") j += 1 if b in secter_set: secter_set.remove(b) l = AD[b] ANS.append(f"Red {b}") for k in range(i, l): ANS.append(f"Red {A[k]}") i = l + 1 red = True if red: for k in range(i, n): if A[k] in secter_set: f = A[k] continue ANS.append(f"Red {A[k]}") ANS.append(f"Red {f}") ANS.append(f"Blue {f}") for k in range(j, m): if B[k] == f: continue ANS.append(f"Blue {B[k]}") else: for k in range(j, m): if B[k] in secter_set: f = B[k] continue ANS.append(f"Blue {B[k]}") ANS.append(f"Blue {f}") ANS.append(f"Red {f}") for k in range(i, n): if A[k] == f: continue ANS.append(f"Red {A[k]}") print(*ANS, sep='\n')