競技プログラミングの鉄則をRustでやってみた

5436 ワード

2022年9月16日に「競技プログラミングの鉄則」という競プロの本が発売されました。
私は普段PythonやTypeScriptを用いて、業務改善アプリなどをつくったりしているエンジニアです(最近ではエンジニアといえば、プログラミングができるソフトウェア系のエンジニアのことを指すことが多いですが、私はアナログ回路設計などを専門としたハードウェア系エンジニアです笑)。
業務で使用する解析アプリを作成している中で、計算コストが高い箇所をなんとかしたい、処理に時間がかかる箇所を一瞬で処理したい、といった目的でアルゴリズムやRustを学ぶことにしました。そんな中で上述の本が発売されたので、この本をRustで踏破してみようと考え今回の記事を書いています。

altテキスト

環境構築

一般的なRustの環境構築方法については、省略し、本記事では、快適に競プロ(特にAtCoder)を学んだり、参加できるようにする環境を構築することについて記載します。

本記事ではcargo-competeといライブラリを使用します。
これはAtCoderにCLIで参加できる非常に便利なライブラリなのですが、この本は以下のURLにある通り、自動採点システムをAtCoder内に用意してくれているので、このライブラリをそのまま使用できます。
前準備としてAtCoderへの新規登録をしていおいてください。後述しますが、CLI上でAtCoderにログインします。