1class Solution {2public:3long long kMirror(int k, int n) {4auto palin = [](int n, bool odd) {5long long ans = n;6if (odd) n /= 10;7for (; n; n /= 10) ans = 10 * ans + n % 10;8return ans;9};1011auto is_mirror = [&](long long x) {12long long rev = 0;13for (auto tmp = x; tmp; tmp /= k) rev = k * rev + tmp % k;14return x == rev;15};1617long long ans = 0, palin0 = 0, palin1 = 0;18int odd = 1, even = 1;19while (n--) {20for (; true; ++odd) {21palin1 = palin(odd, true);22if (is_mirror(palin1)) break;23}24for (; palin0 < palin1; ++even) {25palin0 = palin(even, false);26if (is_mirror(palin0)) break;27}28if (palin0 < palin1) {29ans += palin0;30++even;31} else {32ans += palin1;33++odd;34}35}36return ans;37}38};