結果
問題 |
No.1455 拡張ROTN
|
ユーザー |
![]() |
提出日時 | 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()