提出 #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 | ||||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |