提出 #66557901


ソースコード 拡げる

#!/usr/bin/env python
import os
import sys
from io import BytesIO, IOBase
from collections import deque

inf = float("inf")


def solve():
    n = ri()
    s = input()
    stack = deque()
    stack2 = deque()
    ans = -1
    ans2 = -1
    for i in range(n - 1, -1, -1):
        while stack and s[stack[-1]] >= s[i]:
            stack.pop()
        while stack2 and s[stack2[-1]] <= s[i]:
            stack2.pop()
        if stack:
            ans = i
            ans2 = stack2[-1] if stack2 else -1
        stack.append(i)
        stack2.append(i)
    if ans == -1:
        print(s)
        return
    if ans2 == -1:
        print(s[:ans] + s[ans + 1 :] + s[ans])
        return
    print(s[:ans] + s[ans + 1 : ans2] + s[ans] + s[ans2:])


def main():
    for tc in range(1, 1 + int(input())):
        solve()


# region fastio

BUFSIZE = 8192


class FastIO(IOBase):
    newlines = 0

    def __init__(self, file):
        self._file = file
        self._fd = file.fileno()
        self.buffer = BytesIO()
        self.writable = "x" in file.mode or "r" not in file.mode
        self.write = self.buffer.write if self.writable else None

    def read(self):
        while True:
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
            if not b:
                break
            ptr = self.buffer.tell()
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
        self.newlines = 0
        return self.buffer.read()

    def readline(self):
        while self.newlines == 0:
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
            self.newlines = b.count(b"\n") + (not b)
            ptr = self.buffer.tell()
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
        self.newlines -= 1
        return self.buffer.readline()

    def flush(self):
        if self.writable:
            os.write(self._fd, self.buffer.getvalue())
            self.buffer.truncate(0), self.buffer.seek(0)


class IOWrapper(IOBase):
    def __init__(self, file):
        self.buffer = FastIO(file)
        self.flush = self.buffer.flush
        self.writable = self.buffer.writable
        self.write = lambda s: self.buffer.write(s.encode("ascii"))
        self.read = lambda: self.buffer.read().decode("ascii")
        self.readline = lambda: self.buffer.readline().decode("ascii")


sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)
input = lambda: sys.stdin.readline().rstrip("\r\n")
rri = lambda: map(int, input().split())
ri = lambda: int(input())

# endregion

if __name__ == "__main__":
    main()

提出情報

提出日時
問題 D - String Rotation
ユーザ stormy
言語 Python (PyPy 3.10-v7.3.12)
得点 0
コード長 2724 Byte
結果 WA
実行時間 143 ms
メモリ 85668 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 400
結果
AC × 1
AC × 6
WA × 12
セット名 テストケース
Sample 00_sample_01.txt
All 00_sample_01.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt
ケース名 結果 実行時間 メモリ
00_sample_01.txt AC 67 ms 77044 KiB
01_test_01.txt WA 139 ms 85344 KiB
01_test_02.txt WA 133 ms 84820 KiB
01_test_03.txt WA 143 ms 85668 KiB
01_test_04.txt WA 135 ms 84936 KiB
01_test_05.txt WA 93 ms 83204 KiB
01_test_06.txt WA 89 ms 82928 KiB
01_test_07.txt WA 89 ms 82860 KiB
01_test_08.txt WA 100 ms 83424 KiB
01_test_09.txt AC 82 ms 82752 KiB
01_test_10.txt AC 91 ms 82936 KiB
01_test_11.txt AC 88 ms 83136 KiB
01_test_12.txt WA 90 ms 83020 KiB
01_test_13.txt WA 95 ms 83144 KiB
01_test_14.txt AC 96 ms 83416 KiB
01_test_15.txt WA 88 ms 82816 KiB
01_test_16.txt AC 77 ms 82840 KiB
01_test_17.txt WA 108 ms 84000 KiB