zer0-star / Nim-ACL

ACL (AtCoder Library) implementation in Nim
Creative Commons Zero v1.0 Universal
22 stars 3 forks source link

Nim-ACL

ACL (AtCoder Library) のNimによる実装です。 ACLで実装されているものはexpander含めてすべてNimに変換しています。 一部、Nim向けに使いやすくなるような仕様も追加しました。

expander

Nim-ACLによるimport, includeをすべて展開します。コマンドは本家ACLのものと同じです。 Nim-ACLはatcoderのジャッジ環境では呼び出せませんがexpanderで展開することで、atcoderでもコンパイル可能なコードを生成することが可能です。 online-judge-tools, atcoder-toolsなどの自動提出機能のあるツールと合わせて展開と提出を同時に行うようにすると便利です。

expanderのオプション

usage: expander.py [-h] [-c] [-s] [--lib LIB] source
 --lib LIB     ライブラリへのパス(srcがあるディレクトリ)を表示します。本家ACLのものと同じです。
  -s            展開した部分が一行で表示され、提出ソースコードが読みやすくなります。NimおよびNim-ACL利用者を増やすためにもこのオプションを有効にしていただけたら嬉しいです。

extra

ACLにないがよく使いそうなライブラリを独自に実装しています。 例えば、グラフ関連の処理(ダイクストラ法等)や累積和ライブラリなどがあります。こちらもexpanderで展開可能です。 大体、以下のスタンスで実装していきます。

verifyの実施方法

apple silicon上でverifyに失敗した場合

ドキュメント

使用上の注意

References