まず結果は、A, B, C, Dの4完でパフォーマンスは1,041でした。
Dは勘違いで一回WAしたけど、他はきっちり一発でACしました。
特にこれといって目立った凡ミスもなかったし、今回は満足のいく結果でした。
強いて言えば、B問題が他の問題よりも相対的に時間がかかりました。 単純に数え上げれば間に合うようなのですが、ちょっと凝ったことをしてしまいました。
import math
N = int(input())
log = int(math.log(N, 10))
ans = 0
for i in range(log):
if i % 2 == 0:
ans += 10 ** (i + 1) - 10 ** i
if log % 2 == 0:
ans += N + 1 - (10 ** log)
print(ans)
各桁まとめて足すという解法です。
そんなことしなくても1≤N10^5
なので、↓の解法で十分間に合うとのこと。
N = int(input())
ans = 0
for i in range(1, N + 1):
if len(str(i)) % 2 == 1:
ans += 1
print(ans)
無駄に時間をかけたなぁ。
E問題は普通に難しかったので、時間を見つけて復習するつもりです。
レート緑が目前ですが、緑まではA-Dを確実に丁寧に取る戦略のほうが良さげかなと思っています。
十分緑真ん中くらいのパフォは出ますし。
緑になった後に、E問題も視野に入れてみようと思います。