ABC 363
Table of Contents
D - Palindromic Number
https://atcoder.jp/contests/abc363/tasks/abc363_d
解説 AC
ll intpow(ll x, ll n) {
long long ret = 1;
while (n > 0) {
if (n & 1)
ret *= x;
x *= x;
n >>= 1;
}
return ret;
}
void solve() {
ll N;
cin >> N;
if (N == 1) {
cout << 0 << endl;
return;
}
N--;
for (ll d = 1;; d++) {
if (N <= intpow(10, (d - 1) / 2) * 9) {
ll b = intpow(10, (d - 1) / 2) + N - 1;
string s = to_string(b);
s.resize(s.size() * 2 - d % 2, ' ');
rep(i, d / 2) {
s[s.size() - i - 1] = s[i];
}
cout << s << endl;
return;
} else {
N -= intpow(10, (d - 1) / 2) * 9;
}
}
}