AC(AtCoder) Library Document (production) AtCoderが提供する競技プログラミングライブラリac-libraryを使用したコードをCodeforcesに提出する方法を書く。
2021年9月5日時点の情報です。今後Codeforcesの仕様変更で役に立たなくなるかもしれません。
2021年10月16日 追加された言語C++20が使用できることを追記。
前提条件
- ac-libraryをダウンロードしている
- python3.5 or laterをインストールしている
ライブラリを展開する
これをやります。1
他のジャッジへの提出方法
expander.py
というスクリプト(python3.5 or later)を用意しています。python3 expander.py main.cpp
と実行するとcombined.cpp
が生成され、これは他のオンラインジャッジに提出できる形になっています。テストはしていますが、サポート保証外です。
2021年9月5日引用 https://atcoder.github.io/ac-library/production/document_ja/appendix.html
提出する
言語選択ではGNU G++20 11.2.0 (64 bit, winlibs)
またはGNU G++17 9.2.0 (64 bit, msys 2)
を選んで提出します。
次の言語ではコンパイルエラーが出て提出できません。
GNU GCC C11 5.1.0
Clang++17 Diagnostics
GNU G++14 6.4.0
GNU G++17 7.3.0
Microsoft Visual C++ 2017
これらの言語は動作環境を満たしません。例えば__int128
が使えないようです。
動作環境
ATCODER_
で始まる名前のマクロを使わないでください。- 多くの環境で動くように作っていますが、C++標準からある程度の拡張機能を要求します。具体的には以下のことを仮定します。
__int128 / unsigned __int128(g++, clang++)
か_mul128 / _umul128(Visual Studio)
が使えること__builtin_(ctz/ctzll/clz/clzll/popcount)(g++, clang++)
か_BitScan(Forward/Reverse)(Visual Studio)
が使えることchar / short / int / ll
が8 / 16 / 32 / 64
bit、またそのunsigned
型(およびsigned char
)も同じbit長- 💻 符号付き整数型が2の補数表現であることを規定
2021年9月5日引用 https://atcoder.github.io/ac-library/production/document_ja/appendix.html
コンテスト本番前にCustom Testでac-libraryを使えるか試すとよいでしょう。 Custom Test - Codeforces
試すときのコードは使用例のコードを使うとよいです。 https://atcoder.github.io/ac-library/production/document_ja/modint.html
検索用キーワード:コドフォ ACL how to submit。