C - Comma Editorial by TumoiYorozu


方針は 公式解説 と同じで、実装の Tips を紹介します。

公式では if 文を使って

if (n>=1'000) ans += n-999;
if (n>=1'000'000) ans += n-999'999;
if (n>=1'000'000'000) ans += n-999'999'999;

と実装していますが、 max 関数を使って

ans += max(0LL, n - 999);
ans += max(0LL, n - 999'999);
ans += max(0LL, n - 999'999'999);

と実装することができます。

max(a, b) の返り値はa,bのうち大きい方ですが、片方を 0 に指定して max(a, 0) とすることで、a が正ならば a, 負ならば 0 にすることができます。
0 以外にも 適当な数 t を指定して、このしきい値以下の場合は t にするテクは、ちょっとしたところで覚えておくと良いでしょう。
また、max ではなく min 関数を使うことで、下限ではなく上限を行うこともできます。

posted:
last update: