問題概要
問題ページ
-
D - Handstand 2
問題ページへ移動する
問題文
正の整数 \(N\) が与えられます。
\(N\) 以下の正の整数の組 \((A,B)\) であって、次の条件を満たすものの個数を求めてください。
- \(A,B\) を先頭に \(0\) のつかない \(10\) 進数表記で表したときに、 \(A\) の末尾の桁が \(B\) の先頭の桁に等しく、 \(A\) の先頭の桁が \(B\) の末尾の桁に等しい
制約
- \(1 \leq N \leq 2 \times 10^5\)
- 入力はすべて整数である。
問題の考察
ACコード
import sys
import collections
def solve():
readline = sys.stdin.buffer.readline
mod = 10 ** 9 + 7
n = int(readline())
d = collections.defaultdict(int)
for i in range(1, n + 1):
s = str(i)
d[s[0], s[-1]] += 1
cnt = 0
for i in range(1, n + 1):
s = str(i)
cnt += d[s[-1], s[0]]
print(cnt)
if __name__ == '__main__':
solve()