結果

問題 No.2148 ひとりUNO
ユーザー trineutrontrineutron
提出日時 2022-12-05 04:30:54
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 312 ms / 2,000 ms
コード長 1,124 bytes
コンパイル時間 381 ms
コンパイル使用メモリ 12,416 KB
実行使用メモリ 10,752 KB
最終ジャッジ日時 2024-10-12 03:34:39
合計ジャッジ時間 7,432 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 39
権限があれば一括ダウンロードができます

ソースコード

diff #

def solve():
    n = int(input())
    colors = [set() for _ in range(n)]
    for _ in range(n):
        c, d = input().split()
        d = int(d)
        d -= 1
        colors[d].add(c)
    count_r = 0
    count_g = 0
    count_b = 0
    rg = 0
    gb = 0
    br = 0
    rgb = 0
    for cs in colors:
        if 'R' in cs:
            count_r += 1
        if 'G' in cs:
            count_g += 1
        if 'B' in cs:
            count_b += 1
        if cs == {'R', 'G'}:
            rg = 1
        if cs == {'G', 'B'}:
            gb = 1
        if cs == {'B', 'R'}:
            br = 1
        if cs == {'R', 'G', 'B'}:
            rgb += 1
    # 1 color
    if count_r + count_g == 0 or count_g + count_b == 0 or count_b + count_r == 0:
        return True
    # 2 colors
    if count_r == 0 or count_g == 0 or count_b == 0:
        return rg + gb + br > 0
    # 3 colors
    if rg + gb + br + rgb >= 2:
        return True
    if rgb == 0:
        return False
    return count_r == 1 or count_g == 1 or count_b == 1


t = int(input())
for _ in range(t):
    if solve():
        print('YES')
    else:
        print('NO')
0