結果

問題 No.18 うーさー暗号
ユーザー karayuukarayuu
提出日時 2019-03-10 14:04:52
言語 C++14
(gcc 13.2.0 + boost 1.83.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 831 bytes
コンパイル時間 564 ms
コンパイル使用メモリ 73,076 KB
実行使用メモリ 4,380 KB
最終ジャッジ日時 2023-09-05 19:54:32
合計ジャッジ時間 1,302 ms
ジャッジサーバーID
(参考情報)
judge14 / judge15
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,380 KB
testcase_01 AC 2 ms
4,376 KB
testcase_02 AC 1 ms
4,376 KB
testcase_03 AC 1 ms
4,380 KB
testcase_04 AC 2 ms
4,380 KB
testcase_05 AC 2 ms
4,376 KB
testcase_06 AC 1 ms
4,376 KB
testcase_07 AC 1 ms
4,380 KB
testcase_08 AC 1 ms
4,380 KB
testcase_09 AC 2 ms
4,376 KB
testcase_10 AC 2 ms
4,376 KB
testcase_11 AC 2 ms
4,376 KB
testcase_12 AC 1 ms
4,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <vector>

#define FOR(i, a, b) for (int i = a; i < b; i++)
#define FORN(i, a, b) for (int i = a; i <= b; i++)
#define P(s) cout << s << endl
#define PC(condition, _true, _false) if (condition) _true; else _false;
#define toInt(_char) _char - '0'

using namespace std;
//
// Created by karayuu on 2018-12-18.
//

int main() {
    string s;
    cin >> s;

    string ans;
    for (int i = 1; i <= s.length(); i++) {
        char c = s[i - 1];
        int d = c - 'A'; //ここでcと'A'の差がわかる
        d += 2600; //適当に大きな値を足してマイナスになるのを防ぐ
        d -= i; //これで文字を戻す
        d %= 26; //26で割って本当の文字コードに直す
        ans += 'A' + d;
    }

    P(ans);
}
0