結果

問題 No.3374 Caesar Shift Game
コンテスト
ユーザー norioc
提出日時 2025-11-22 05:43:18
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,095 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 323 ms
コンパイル使用メモリ 82,300 KB
実行使用メモリ 553,488 KB
最終ジャッジ日時 2025-11-22 05:43:30
合計ジャッジ時間 9,799 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 18 WA * 13 MLE * 4
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

from collections import deque
import sys
sys.setrecursionlimit(10**6)


def find_abc(cs: list):
    a = deque()
    b = deque()
    c = deque()
    for i, x in enumerate(cs):
        if x == 'A':
            a.append(i)
        elif x == 'B':
            b.append(i)
        elif x == 'C':
            c.append(i)

    return a, b, c


def f(cs: list, a, b, c):
    ai = a[0] if a else INF
    bi = b[0] if b else INF
    ci = c[0] if c else INF

    if ci < ai and ci < bi:
        cs[ci] = 'A'
        c.popleft()
        return g(cs, a, b, c)

    return cs


def g(cs: list, a, b, c):
    ai = a[0] if a else INF
    bi = b[0] if b else INF
    ci = c[0] if c else INF

    if ci < ai and ci < bi:
        return cs

    if ai < bi:
        cs[ai] = 'B'
        a.popleft()
    elif bi < INF:
        cs[bi] = 'C'
        b.popleft()

    return f(cs, a, b, c)


def solve():
    N = int(input())
    S = input()
    cs = list(S)
    a, b, c = find_abc(cs)
    res = f(cs, a, b, c)
    return ''.join(res)


INF = 1 << 60
T = int(input())
for _ in range(T):
    ans = solve()
    print(ans)
0