初級編はじめにAtCoderではC++のBoostライブラリを使用することができます。Boostライブラリには非常に多くの機能がありますが、そのうち便利だなと思ったものを簡単に紹介します。endl;}整数のレンジを使うにはboost::irange関数を使います。n)を指定して、第3引数でステップ幅を2に指定しています。for文を記述することができ、Pythonのfor文と近い感覚になります。endl;}多倍長整数を扱うにはboost::multiprecision::cpp_intを使います。この問題で与えられる整数は$10^{100}$以下という制限となっており、数値として扱うために多倍長整数で受け取っています。endl;}指定した区切り文字で文字列を分割するにはboost::algorithm::split関数を使用します。得られた結果は指定したコンテナで受け取ります。区切り文字かどうかを判定する述語としてboost::is_any_ofを使用しています。今回の例では文字列を+で区切っています。以下のように記述してもよいです。endl;}コンテナの文字列をつなげて一つの文字列にするには、boost::algorithm::join関数を使用します。つなげる区切り文字を指定でき、例えば以下のように記述すれば_で区切られた文字列になります。endl;}文字列の中の要素をすべて別の要素に置き換えるにはboost::algorithm::replace_all関数を使用します。これは破壊的処理であり、もともとの文字列sを変更しています。非破壊的にコピーを作って置換する場合はboost::algorithm::replace_all_copy関数を使えばよいです。以下のように書きます。endl;}関数の最小値を探索するにはboost::math::tools::brent_find_minima関数を使用します。今回の例では関数をラムダ式で記述し、xの探索範囲を指定しています。結果をrに代入しています。最小値となるxの値と関数の値が、それぞれr.firstとr.secondで得られます。まとめいかがだったでしょうか。競技プログラミングの問題を例として、Boostライブラリの便利な機能の一部を紹介できたかなと思います。