AtCoder を Rust で解いた学習ログです。
ABCxxx/
A/
A.rs # 原則として ABC コンテスト中の答案
A-better.rs # 解説を読んで書き直したものなど
AHCxxx/
main.rs # 原則として AHC コンテスト中の答案
scripts/
add_problem_url.py # 問題 URL を付けるスクリプト
.githooks/
pre-commit # コミット時に上のスクリプトを実行
- ディレクトリは
コンテスト名/問題記号/で、コンテスト名と問題記号は大文字に統一しています。 - 同じ問題の別解・改善版は
A-better.rsのように問題記号-説明.rsとします。 - 一部のファイルは試行錯誤の途中経過で、コンパイルが通らないものもあります。
各 .rs の 1 行目には問題ページの URL が入ります。コミット時に pre-commit フックが、ステージされた .rs のうち URL が無いものへ自動で追加します。
clone したら一度だけ次を実行してください。
git config core.hooksPath .githooks既存のファイルにまとめて付けたい場合は python3 scripts/add_problem_url.py を引数なしで実行します。
ABC001〜019 など問題 ID が数字のコンテストには対応していません。
- 問題文・サンプル入出力・公式解説の文章は掲載しない。問題の内容は 1 行目の URL から参照する。
- 外部の記事やコードを参考にした箇所には、その URL をコメントで記載する。その上で個人的な方針:
- Qiita: 特別にライセンス表記がなければ、自身のアカウントを持つ限り、URLをつけてコード自体を流用しても良さそうだが、基本的には自分の手で書き直す。 特に流用した場合は
ref:は、このリポジトリのライセンス上、必ず付ける。 - Zenn: コピーは基本的に全く不可で、URLをつけた上で、考え方やアルゴリズムのような範囲を読んで自分で書き直すというほうが良さそう あまり同じ言語(=Rust)は参照したくない
- その他: 確認が面倒なので可能な限り避けるか、諦める。
- Qiita: 特別にライセンス表記がなければ、自身のアカウントを持つ限り、URLをつけてコード自体を流用しても良さそうだが、基本的には自分の手で書き直す。 特に流用した場合は
- コードの一部は生成 AI との相談をもとに書いています。コンテスト中にこのリポジトリのコードを使う場合は、AtCoder 生成AI対策ルール に従い、提出コードにこのリポジトリの URL を記載します。
- 原則として、純粋な
A.rsやB.rsのようなファイルはコンテスト中のルールに則って作成し、提出に使用したものです。- 参考として外部の記事やコードを使用していることがあります。基本的には出典をつけてあります。
- ABC477~481はこのリポジトリを管理し始めた最初からあったもので、本方針を適用する前に取り組んだもので、抜けや例外が含まれている可能性が高くなっています。
- 一部の例外はファイルの上にコメントを付して例外であることを示してあります。
- 参考として外部の記事やコードを使用していることがあります。基本的には出典をつけてあります。
- 他のファイル、
A-better.rsなどは参考として外部の記事やコードを使用していたり、このリポジトリのうち、生成AIを用いて作成されたコードを含む、それまであった他のファイルを参照している場合があります。
- 原則として、純粋な