結果
| 問題 | No.1455 拡張ROTN |
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-03-31 17:34:05 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 45 ms / 2,000 ms |
| コード長 | 1,090 bytes |
| コンパイル時間 | 234 ms |
| コンパイル使用メモリ | 82,588 KB |
| 実行使用メモリ | 60,500 KB |
| 最終ジャッジ日時 | 2025-03-31 17:34:55 |
| 合計ジャッジ時間 | 2,044 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 22 |
ソースコード
def main():
S0 = input().strip()
N = int(input())
replacement = "CpCzNkSuTbEoA"
def process_char(c, k):
if k == 0:
return c
if c.isdigit():
num = int(c)
if num == 9:
new_k = k - 1
return ''.join(process_char(ch, new_k) for ch in replacement)
else:
possible_steps = 9 - num
if possible_steps >= k:
return str(num + k)
else:
new_k = k - possible_steps - 1
return ''.join(process_char(ch, new_k) for ch in replacement)
elif c.isupper():
shifted = (ord(c) - ord('A') + k) % 26
return chr(ord('A') + shifted)
elif c.islower():
shifted = (ord(c) - ord('a') + k) % 26
return chr(ord('a') + shifted)
else:
return c
result = []
for char in S0:
res = process_char(char, N)
result.append(res)
print(''.join(result))
if __name__ == '__main__':
main()
lam6er