Yukicoder018 うーさー暗号

問題概要

文字列$S$が与えられる。$S[i]$(1-index)をiだけ小さいアルファベットに変える。(B→A,A→Zのように) 変更後の文字列を出力せよ。

$|S|\leqq1024$

yukicoder018

解法

mod26するだけ。

計算量:$O(|S|)$

ソース

    #include <bits/stdc++.h>
    using namespace std;
    
    using VS = vector<string>;    using LL = long long;
    #define SZ(a) int((a).size())
    #define FOR(i, s, e) for (int(i) = (s); (i) < (e); (i)++)
    
    LL N;
    
    LL ans = 0LL;
    
    int main() {
        cin.tie(0);
        ios_base::sync_with_stdio(false);
    
        string s; cin >> s;
        FOR(i, 0, SZ(s)) {
            int dec = (i + 1) % 26;
            int n = s[i] - 'A';
            int add = (26 + n - dec) % 26;
            s[i] = 'A' + add;
        }
        cout << s << "\n";
    
        return 0;
    }
Share Comments
̃Gg[͂ĂȃubN}[Nɒlj
comments powered by Disqus