Edit

【pythonでABC196を解説】C - Doubled

問題概要

問題ページ

問題文

整数 \(N\) が与えられます。
以下の条件を満たす \(1\) 以上 \(N\) 以下の整数 \(x\) は何個あるでしょうか?

  • \(x\) の十進表記 (先頭に \(0\) を付けない) は偶数桁であり、その前半と後半は文字列として等しい。

制約

  • \(N\) は整数
  • \(1 ≤ N < 10^{12}\)

問題の考察

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip('\n'))
    cnt = 0
    for i in range(1, 10 ** 20):
        ans = int(str(i) + str(i))
        if int(ans) > n:
            print(cnt)
            exit()
        else:
            cnt += 1


if __name__ == '__main__':
    solve()

-Edit
-