結果
問題 | No.1455 拡張ROTN |
ユーザー |
|
提出日時 | 2024-03-22 13:26:32 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 880 bytes |
コンパイル時間 | 4,158 ms |
コンパイル使用メモリ | 252,372 KB |
最終ジャッジ日時 | 2025-02-20 10:58:16 |
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 22 |
ソースコード
#include <bits/stdc++.h>#include <atcoder/all>using namespace std;using namespace atcoder;using ll = long long;using ld = long double;string S0, S;ll N;string slide(string S) {string res;for (int i = 0; i < S.size(); i++) {if (S[i] == '9') res += "CpCzNkSuTbEoA";else if ('0' <= S[i] && S[i] <= '8') res += char(S[i] + 1);else if (S[i] == 'Z' || S[i] == 'z') res += char(S[i] - 25);else res += char(S[i] + 1);}return res;}int main() {cin >> S0 >> N;for (int i = 0; i < min(10LL, N); i++) {S = slide(S0);S0 = S;}if (N > 10) {S = "";int M = (N - 10) % 26;for (int i = 0; i < S0.size(); i++) {if ('a' <= S0[i] && S0[i] <= 'z') S += char('a' + (S0[i] - 'a' + M) % 26);if ('A' <= S0[i] && S0[i] <= 'Z') S += char('A' + (S0[i] - 'A' + M) % 26);}}cout << S << endl;return 0;}