結果
問題 | No.1455 拡張ROTN |
ユーザー |
|
提出日時 | 2021-03-31 22:15:24 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,028 bytes |
コンパイル時間 | 1,912 ms |
コンパイル使用メモリ | 194,220 KB |
最終ジャッジ日時 | 2025-01-20 03:43:31 |
ジャッジサーバーID (参考情報) |
judge5 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 22 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define rep(i, n) for(int i = 0; i < int(n); i++) using ll = long long; using P = pair<int, int>; char rotate(char c, ll n) { n %= 26; char res; if('a' <= c && c <= 'z') res = 'a' + (c - 'a' + n) % 26; else { res = 'A' + (c - 'A' + n) % 26; } return res; } string solve(string s, ll n) { string res = ""; rep(i, s.size()) { char before = s[i]; if ('0' <= before && before <= '9') { if (n <= ll('9' - before)) { res += before + (int)n; } else { ll remain = n - ll('9' - before) - (ll)1; res += solve("CpCzNkSuTbEoA", remain); } } else { res += rotate(before, n); } } return res; } int main() { cin.tie(0); ios_base::sync_with_stdio(false); string s; cin >> s; ll n; cin >> n; string ans = solve(s, n); cout << ans << endl; return 0; }