結果
| 問題 | No.3395 Range Flipping Game |
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2025-12-02 08:37:35 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,468 bytes |
| コンパイル時間 | 323 ms |
| コンパイル使用メモリ | 82,448 KB |
| 実行使用メモリ | 105,760 KB |
| 最終ジャッジ日時 | 2025-12-02 08:37:42 |
| 合計ジャッジ時間 | 6,371 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 11 WA * 19 |
ソースコード
def main():
for _ in range(int(input())):
solve()
def solve():
n = int(input())
s = list(input())
rle = []
fc = s[0]
fn = 0
for i in range(n):
if s[i]==fc:
fn += 1
else:
rle.append((fc, fn))
fc = s[i]
fn = 1
rle.append((fc, fn))
fc, fn = rle[0]
if fc == "A":
if fn <= 2:
f = -1
for i in range(n):
if s[i] == "B":
if f < 0:
f = i
else:
f = i
break
else:
f = -1
if f >= 0:
while f < n and s[f] == "B":
s[f] = "A"
f += 1
for i in range(min(2, fn)):
s[i] = "B"
elif fn == 1 < n:
s1, c1 = rle[1]
if c1 <= 2:
f = -1
for i in range(1, n):
if s[i] == "B":
if f < 0:
f = i
else:
f = i
break
else:
f = -1
if f >= 0:
while f < n and s[f] == "B":
s[f] = "A"
f += 1
for i in range(1, min(n, 3)):
if s[i] == "B": break
s[i] = "B"
print("".join(s))
if __name__ == "__main__":
main()