結果
問題 | No.1455 拡張ROTN |
ユーザー |
![]() |
提出日時 | 2021-03-31 21:16:39 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,040 bytes |
コンパイル時間 | 1,711 ms |
コンパイル使用メモリ | 169,192 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-15 13:59:17 |
合計ジャッジ時間 | 2,189 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 22 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main(){ string S; cin >> S; long long N; cin >> N; int M = S.size(); string T = "CpCzNkSuTbEoA"; string ans; for (int i = 0; i < M; i++){ if (islower(S[i])){ int x = S[i] - 'a'; x += N % 26; x %= 26; ans += (char) ('a' + x); } if (isupper(S[i])){ int x = S[i] - 'A'; x += N % 26; x %= 26; ans += (char) ('A' + x); } if (isdigit(S[i])){ int d = S[i] - '0'; if (d + N <= 9){ ans += (char) (S[i] + N); } else { long long N2 = N - (10 - d); int cnt = T.size(); for (int j = 0; j < cnt; j++){ if (islower(T[j])){ int x = T[j] - 'a'; x += N2 % 26; x %= 26; ans += (char) ('a' + x); } if (isupper(T[j])){ int x = T[j] - 'A'; x += N2 % 26; x %= 26; ans += (char) ('A' + x); } } } } } cout << ans << endl; }