結果
問題 |
No.2148 ひとりUNO
|
ユーザー |
|
提出日時 | 2022-12-10 03:15:04 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 187 ms / 2,000 ms |
コード長 | 1,419 bytes |
コンパイル時間 | 219 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 77,824 KB |
最終ジャッジ日時 | 2024-10-14 23:29:08 |
合計ジャッジ時間 | 6,752 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 39 |
ソースコード
import sys input = sys.stdin.readline from itertools import * for _ in range(int(input())): N = int(input()) L = [[] for _ in range(3)] for _ in range(N): C, D = input().split() D = int(D) if C=='R': L[0].append(D) elif C=='G': L[1].append(D) else: L[2].append(D) x = 3-[len(L[0]), len(L[1]), len(L[2])].count(0) if x==1: print('YES') elif x==2: l = [i for i in range(3) if len(L[i])>0] if len(set(L[l[0]])&set(L[l[1]]))>0: print('YES') else: print('NO') else: ok = False for p in permutations(range(3)): if len(L[p[1]])==1: if L[p[1]][0] in L[p[0]] and L[p[1]][0] in L[p[2]]: ok = True else: s1 = set(L[p[0]])&set(L[p[1]]) s2 = set(L[p[1]])&set(L[p[2]]) if len(s2)==0: continue elif len(s2)>1: if len(s1)>0: ok = True else: if len(s1)==1 and list(s1)[0]!=list(s2)[0]: ok = True elif len(s1)>1: ok = True if ok: print('YES') else: print('NO')