Submission #3448201


Source Code Expand

#include <iostream>
#include <string>
using namespace std;

template <typename T, typename U>
T mypow(T b, U n) {
    if (n == 0) return 1;
    if (n == 1) return b /* % MOD */;
    if (n % 2 == 0) {
        return mypow(b * b /* % MOD */, n / 2);
    } else {
        return mypow(b, n - 1) * b /* % MOD */;
    }
}

int main() {
    int A;
    string S;
    cin >> A >> S;

    int b = 0, idx = 0;
    for (int i = 0; i < S.size(); ++i) {
        b += (S[i] - 'a' + 1) * mypow(A, i - idx);

        while (b > 26) {
            // できるだけ値を引いてbをAの倍数にしたい
            // 引く値は1以上26以下

            for (int j = 26; j >= 1; --j) {
                // j引いたらbはAの倍数になるか?
                if ((b - j) % A == 0) {
                    cout << (char)('a' + j - 1);
                    b = (b - j) / A;
                    ++idx;
                    break;
                }
            }
        }
    }

    if (b > 0) cout << (char)('a' + b - 1);

    cout << endl;
    return 0;
}

Submission Info

Submission Time
Task C - Best Password
User Tiramister
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1091 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 28
Set Name Test Cases
All corner_18, corner_19, corner_20, corner_21, corner_22, corner_23, large_09, large_10, large_11, large_12, large_13, large_14, large_15, large_16, large_17, sample_00, sample_01, sample_02, sample_03, small_00, small_01, small_02, small_03, small_04, small_05, small_06, small_07, small_08
Case Name Status Exec Time Memory
corner_18 AC 1 ms 256 KB
corner_19 AC 1 ms 256 KB
corner_20 AC 1 ms 256 KB
corner_21 AC 1 ms 256 KB
corner_22 AC 1 ms 256 KB
corner_23 AC 1 ms 256 KB
large_09 AC 1 ms 256 KB
large_10 AC 1 ms 256 KB
large_11 AC 1 ms 256 KB
large_12 AC 1 ms 256 KB
large_13 AC 1 ms 256 KB
large_14 AC 1 ms 256 KB
large_15 AC 1 ms 256 KB
large_16 AC 1 ms 256 KB
large_17 AC 1 ms 256 KB
sample_00 AC 1 ms 256 KB
sample_01 AC 1 ms 256 KB
sample_02 AC 1 ms 256 KB
sample_03 AC 1 ms 256 KB
small_00 AC 1 ms 256 KB
small_01 AC 1 ms 256 KB
small_02 AC 1 ms 256 KB
small_03 AC 1 ms 256 KB
small_04 AC 1 ms 256 KB
small_05 AC 1 ms 256 KB
small_06 AC 1 ms 256 KB
small_07 AC 1 ms 256 KB
small_08 AC 1 ms 256 KB