実行OS環境
Ubuntu 25.04 (Plucky)
実行コマンド
| 言語 | バージョン | 言語ID | コンパイルコマンド | コンパイル内部コマンド | 実行コマンド | 実行内部コマンド |
|---|---|---|---|---|---|---|
| C++23(gcc16) | gcc 16.2.0 + boost 1.92.0 + ACL | cpp23_gcc16 | g++-16 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc16.so -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_ | ./a.out | ||
| C++23(gnu拡張gcc16) | gcc 16.2.0 + boost 1.92.0 + ACL | cpp23_gnu_gcc16 | g++-16 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc16.so -lm -std=gnu++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_ | ./a.out | ||
| C++23 | gcc 15.3.0 + boost 1.92.0 + ACL | cpp23 | g++-15 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_ | ./a.out | ||
| C++23(gnu拡張) | gcc 15.3.0 + boost 1.92.0 + ACL | cpp23_gnu | g++-15 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -lm -std=gnu++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_ | ./a.out | ||
| C++17 | gcc 15.3.0 + boost 1.92.0 + ACL | cpp17 | g++-15 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -lm -std=c++17 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_ | ./a.out | ||
| C++17(gnu拡張) | gcc 15.3.0 + boost 1.92.0 + ACL | cpp17_gnu | g++-15 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -lm -std=gnu++17 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_ | ./a.out | ||
| C++17(gcc12) | gcc 12.4.0 + boost 1.92.0 + ACL | cpp17_gcc12 | g++-12 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc12.so -lm -std=c++17 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_ | ./a.out | ||
| C++17(clang) | clang++ 23.1.4 + boost 1.92.0 + ACL | cpp-clang | clang++ -O2 -lm -std=c++1z -Wuninitialized -DONLINE_JUDGE -o a.out _filename_ | ./a.out | ||
| C++14 | gcc 15.3.0 + boost 1.92.0 + ACL | cpp14 | g++-15 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -lm -std=c++14 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_ | ./a.out | ||
| C++11 | gcc 15.3.0 + boost 1.92.0 | cpp | g++-15 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_ | ./a.out | ||
| C++11(gcc12) | gcc 12.4.0 + boost 1.92.0 | cpp_gcc12 | g++-12 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc12.so -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_ | ./a.out | ||
| C++11(old_compat) | gcc 12.4.0 + boost 1.92.0 | cpp_gcc12_compat | g++-12 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc12.so -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -include bits/stdc++.h -o a.out _filename_ | ./a.out | ||
| C | gcc 15.3.0 | c_latest | gcc-15 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -DONLINE_JUDGE -o a.out _filename_ -lm | ./a.out | ||
| C(gnu17) | gcc 15.3.0 | c17 | gcc-15 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -std=gnu17 -Wno-error=implicit-function-declaration -Wno-error=implicit-int -Wno-error=incompatible-pointer-types -Wno-error=int-conversion -DONLINE_JUDGE -o a.out _filename_ -lm | ./a.out | ||
| C11(gcc12 gnu拡張) | gcc 12.4.0 | c11_gcc12 | gcc-12 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc12.so -std=gnu11 -DONLINE_JUDGE -o a.out _filename_ -lm | ./a.out | ||
| C90 | gcc 15.3.0 | c90_gcc15 | gcc-15 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -std=c90 -DONLINE_JUDGE -o a.out _filename_ -lm | ./a.out | ||
| C90(gcc12) | gcc 12.4.0 | c | gcc-12 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc12.so -std=c90 -DONLINE_JUDGE -o a.out _filename_ -lm | ./a.out | ||
| Java | openjdk 27.0.1.0.3 + ACL | java | javac -J-Duser.language=en -encoding UTF8 -cp /opt/aclib/ac_library.jar _filename_ | java -ea -Xmx700m -Xss256M -DONLINE_JUDGE=true -cp .:/opt/aclib/ac_library.jar _class_ | ||
| C# | .NET 10.0.403 + ACL | csharp_dotnet | dotnet_c | #!/bin/sh export DOTNET_EnableWriteXorExecute=0 echo '<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><ImplicitUsings>enable</ImplicitUsings><OutputType>Exe</OutputType><TargetFramework>net10.0</TargetFramework><AllowUnsafeBlocks>true</AllowUnsafeBlocks></PropertyGroup><ItemGroup><PackageReference Include="ac-library-csharp" Version="4.1.3" /></ItemGroup></Project>' > main.csproj; dotnet restore -s /home/judge/.nuget/ dotnet publish --no-restore -c Release -p:UseSharedCompilation=false |
/usr/bin/dotnet_wrap | #!/bin/bash export DOTNET_ROOT=/home/judge/.dotnet export DOTNET_EnableWriteXorExecute=0 ./bin/Release/net10.0/main "$@" |
| C#(csc) | csc 3.9.0 | csharp | csc -langversion:latest -unsafe -warn:0 -o+ /r:System.Numerics.dll _filename_ -out:a.exe | /usr/bin/mono a.exe | ||
| Perl | 5.44.0 | perl | perl -cw _filename_ | perl -X _filename_ | ||
| Raku | rakudo v2026.09 | raku | raku -c _filename_ | raku _filename_ | ||
| PHP | 8.5.12 | php | php -l _filename_ | php _filename_ | ||
| Python3 | 3.15.2 + numpy 2.5.4 + scipy 1.18.1 + ACL | python3 | python3 -mpy_compile _filename_ | python3 _filename_ | ||
| PyPy3 | 8.0.1 + ACL | pypy3 | pypy3 -mpy_compile _filename_ | pypy3 _filename_ | ||
| PyPy2 | 7.3.20 | pypy2 | pypy2 -m py_compile _filename_ | /usr/bin/pypy2 Main.pyc | ||
| Ruby | 4.0.9 + ACL | ruby | ruby -w -c _filename_ | ruby _filename_ | ||
| D | dmd 2.113.0 | d | dmd -fPIE -m64 -w -wi -O -release -inline -I/opt/dmd/src/druntime/import/ -I/opt/dmd/src/phobos -L-L/opt/dmd/linux/lib64/ -fPIC _filename_ | ./Main | ||
| Go | 1.27.3 + ACL | go | /usr/bin/go_c | #!/bin/sh cp /go-acl/go.mod /go-acl/go.sum ./ && cp -a /go-acl/vendor ./ && env GOCACHE=/tmp GOFLAGS=-mod=vendor go build -o Main . |
./Main | |
| Haskell | 9.14.1 + ACL | haskell | ghc -rtsopts -with-rtsopts=-K1G -o a.out -O2 _filename_ | ./a.out | ||
| Scala | 3.10.0 + ACL | scala | scalac -cp /opt/aclib/ac-library-scala.jar _filename_ | /usr/bin/scala_run _class_ | #!/bin/bash SCALA_HOME=$(dirname "$(dirname "$(readlink -f "$(which scalac)")")") SCALA_CP=$(find "$SCALA_HOME" -name "scala3-library_3-*.jar" -o -name "scala-library-*.jar" | tr '\n' ':') java -cp ".:${SCALA_CP}/opt/aclib/ac-library-scala.jar" "$@" |
|
| Nim | 2.2.12 + ACL | nim | nim --nimcache=~ --hints:off -o:a.out -d:release cpp _filename_ | ./a.out | ||
| Rust | 1.99.1 + proconio + num + itertools + ACL | rust | /usr/bin/rustc_custom | #!/bin/sh cp /rust/Cargo.toml ./ && cp -a /rust/target ./ && mkdir src && mv main.rs src/ && cargo build --release --quiet --offline --- Cargo.toml --- [package] name = "main" version = "0.1.0" edition = "2024" [dependencies] proconio = { version = "0.5", features = ["derive"] } num = "0.4" itertools = "0.14" ac-library-rs = "0.2.0" |
./target/release/main | |
| Kotlin | 2.4.21 + ACL | kotlin | kotlinc -cp /opt/aclib/ac_library.jar _filename_ -include-runtime -d main.jar | java -cp main.jar:/opt/aclib/ac_library.jar _class_ | ||
| Scheme | Gauche-0.9.15 | scheme | true | gosh _filename_ | ||
| Crystal | 1.22.1 + ACL | crystal | crystal build -Donline_judge -o a.out --release --no-debug _filename_ | ./a.out | ||
| Swift | 6.4.1 | swift | swiftc _filename_ -Ounchecked -o a.out | ./a.out | ||
| OCaml | 5.5.2 | ocaml | ocamlfind ocamlopt -linkpkg -package zarith,str _filename_ -o a.out | ./a.out | ||
| Clojure(Beta) | 1.12.6 + ACL | clojure | true | clojure -M _filename_ | ||
| F# | F# 10.0 + ACL | fsharp | fsharp_c _filename_ | #!/bin/bash export DOTNET_EnableWriteXorExecute=0 cat <<EOP > main.fsproj <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net10.0</TargetFramework> </PropertyGroup> <ItemGroup> <Compile Include="Main.fs" /> </ItemGroup> <ItemGroup> <PackageReference Include="ac-library-csharp" Version="4.1.3" /> </ItemGroup> </Project> EOP dotnet restore -s /home/judge/.nuget/ dotnet publish --no-restore -c Release |
/usr/bin/dotnet_wrap | #!/bin/bash export DOTNET_ROOT=/home/judge/.dotnet export DOTNET_EnableWriteXorExecute=0 ./bin/Release/net10.0/main "$@" |
| Elixir | 1.20.4 | elixir | elixirc _filename_ | elixir -e Main.main | ||
| Lua | LuaJit 2.1.1792588164 | lua | luajit -b _filename_ a.out | luajit _filename_ | ||
| Julia | 1.13.3 | julia | true | julia _filename_ | ||
| Fortran | gFortran 16.2.0 | fortran | gfortran-16 _filename_ -O2 -o ./a.out | ./a.out | ||
| JavaScript(Node) | node v26.12.1 + ACL | node | true | node _filename_ ONLINE_JUDGE | ||
| TypeScript(Node) | 7.0.2 + ACL | typescript | tsc.sh -p tsconfig.json | #!/bin/sh cp -ar /node-x64/tsconfig.json tsconfig.json rm -rf node_modules ln -s /home/linuxbrew/.linuxbrew/lib/node_modules/ node_modules tsc $@ |
node main.js ONLINE_JUDGE | |
| JavaScript(Bun) | 1.4.3 + ACL | bun_js | bun_c _filename_ | #!/bin/sh rm -rf node_modules ln -s /home/linuxbrew/.linuxbrew/lib/node_modules/ node_modules bun build --no-bundle "$1" > /dev/null |
bun --no-install _filename_ ONLINE_JUDGE | |
| TypeScript(Bun) | 1.4.3 + ACL | bun_ts | bun_c _filename_ | #!/bin/sh rm -rf node_modules ln -s /home/linuxbrew/.linuxbrew/lib/node_modules/ node_modules bun build --no-bundle "$1" > /dev/null |
bun --no-install _filename_ ONLINE_JUDGE | |
| Common Lisp | sbcl 2.6.9 | lisp | sbclc _filename_ | #!/bin/sh sbcl --noinform --noprint --eval "(compile-file \"${1}\")" --quit |
sbcl --script Main.fasl | |
| Standard ML | MLton 20241230 | sml | mlton_wrapper _filename_ | ./main | ||
| Fix | 1.6.0 + cp-library + minilib | fix | fix_c _filename_ | #!/bin/sh cp -a /fix ./proj && cp "$1" proj/main.fix && cd proj && fix build -O max --no-runtime-check --cu-size inf -o ../a.out |
./a.out | |
| Kuin | KuinC++ v.2021.9.17 | kuin | kuinc -i _filename_ -o out.cpp -s /kuin/sys/ -e cpp -r -q | #!/bin/sh /usr/bin/kuinc_core $@ && clang++ -std=c++17 -O2 out.cpp -o a.out |
./a.out | |
| Vim script | v9.2 | vim | true | vim -u NONE -i NONE -X -N -n -e -s -S _filename_ /dev/stdin -c qa! | ||
| Bash | Bash 5.2.37 | sh | true | /usr/bin/bash _filename_ | ||
| Assembler | nasm 3.02 | nasm | nasmc Main | #!/bin/sh nasm -f elf64 -Werror $1.asm && ld -s -o a.out $1.o |
./a.out | |
| cLay | 20250308-1 + boost 1.92.0 + ACL | clay | clayc _filename_ | #!/bin/sh cat "$1" | clay > main.cpp && g++-15 -std=c++1y -O2 -lm -o a.out main.cpp |
./a.out | |
| Brainfuck | BFI 1.1 | bf | true | /usr/bin/bf _filename_ | ||
| Whitespace | 1.3.0 | Whitespace | true | /usr/bin/wspace _filename_ | ||
| Text | fcat | text | true | /usr/bin/fcat _filename_ |
C / C++ (gcc) の AVX-512 の指定
判定サーバーの CPU (AMD EPYC Milan、Zen 3) は AVX-512 を持ちません。
gcc を使う言語(コンパイルコマンドに -fplugin=/usr/lib/yukicoder/noavx512-gcc… がある言語)では、
#pragma GCC target(...) と __attribute__((target(...))) の指定を次のように置き換えてコンパイルします。
ソースコードは書き換えません。置き換えたときは、コンパイルメッセージに警告が出ます。
avx512fなどのavx512…・avx10…はavx2にします(AVX2 での 256 ビットのベクトル化は残ります)- AVX-512 を持つ CPU の
arch=(skylake-avx512・znver4など)はarch=znver3にします _mm512_…などの AVX-512 の組み込み関数を直接使うと、コンパイルエラーになります- C++17(clang) は対象外です。
__attribute__((target("avx512f")))を書くと、実行時エラーになることがあります
置き換えに使っている GCC プラグインのソース (judge/lang/gcc_plugin/noavx512.cc)
// 提出の #pragma GCC target(...) / __attribute__((target(...))) の AVX-512 の指定を、判定サーバーの CPU で動く指定に置き換える GCC プラグイン。
//
// 判定サーバーの CPU(AMD Milan)は AVX-512 を持たない。そのため
// #pragma GCC target("avx512f") の提出は、AVX-512 の命令に当たった時点で SIGILL(終了コード 132)の RE になる
// (2026-10-12 に AMD の CPU に移してから。例: 提出 877701)。指定は AVX-512 を使った最適化の許可にすぎないので、
// AVX-512 だけを外して最適化する(2026-10-29 運営判断)。
// 提出のソースは書き換えない。コンパイラが target の指定を読む処理を差し替え、指定の文字列の中の項目を置き換えて渡す。
//
// - avx512* と avx10* は avx2 にする。GCC では avx512f が AVX2 以下(AVX2・SSE4.2・POPCNT など)も一緒に有効にし、
// AVX-512 の部分を除くと avx2 と同じになる(gcc 12・15・16 で定義済みマクロを比べて確かめた)。
// 消すだけにすると target("avx512f") だけの提出が SSE2 まで落ちてベクトル化されないので、AVX2 で 256 ビットのまま残す。
// avx10 は no- の効き方が GCC 15 と 16 で逆なので、後ろに no-avx512f を足す形にはしない
// - AVX-512 を持つ arch= の CPU 名は arch=znver3(判定サーバーの CPU)にする。それらの CPU は AVX-VNNI など
// Milan に無い命令も持つので、AVX-512 だけを外しても足りない
// - no-avx512f のような無効にする指定はそのまま
// - 置き換えたら警告を出す。提出のページの「コンパイルメッセージ」に出るので、何をされたか提出者に見える
// (CE にはしない。AVX-512 の命令に当たらず今も AC している提出があるため)
// - システムヘッダ(immintrin.h など)の中の pragma には触らない。組み込み関数を定義するために自分で
// target("avx512f") を使っているので、置き換えるとヘッダが壊れる
// - _mm512_* などを直接使う提出は CE になる(命令そのものを使うので避けられない)
// - オプション(-mno-avx512f や -march)では抑えられない。pragma の方が後に効くため
//
// ビルドは install_gcc_plugins.sh(gcc の版ごとに作る。版が変わったら作り直す)。
#include "gcc-plugin.h"
#include "plugin-version.h"
#include "tree.h"
#include "target.h"
#include "input.h"
#include "diagnostic-core.h"
#include <set>
#include <string>
int plugin_is_GPL_compatible;
static bool (*orig_pragma_parse)(tree, tree);
static bool (*orig_valid_attribute_p)(tree, tree, tree, int);
// AVX-512 を含む arch= の CPU 名
static const char *const avx512_arches[] = {
"knl", "knm", "skylake-avx512", "cannonlake", "icelake-client", "icelake-server",
"cascadelake", "cooperlake", "tigerlake", "rocketlake", "sapphirerapids",
"graniterapids", "graniterapids-d", "emeraldrapids", "diamondrapids",
"znver4", "znver5", "x86-64-v4", nullptr};
// 項目の置き換え先。置き換えないものは空
static std::string replace_item(const std::string &s) {
if (s.rfind("no-", 0) == 0) return "";
if (s.rfind("avx512", 0) == 0 || s.rfind("avx10", 0) == 0) return "avx2";
if (s.rfind("arch=", 0) == 0) {
std::string a = s.substr(5);
for (int i = 0; avx512_arches[i]; i++)
if (a == avx512_arches[i]) return "arch=znver3";
}
return "";
}
// "a,b,c" の項目を置き換える(並びは保つ。後の項目が前を上書きする意味があるため)
static std::string filter_str(const char *p) {
std::string out, cur;
for (const char *q = p;; q++) {
if (*q == ',' || *q == '\0') {
if (!cur.empty()) {
std::string r = replace_item(cur);
if (!out.empty()) out += ',';
out += r.empty() ? cur : r;
}
cur.clear();
if (*q == '\0') break;
} else {
cur += *q;
}
}
return out;
}
// STRING_CST の TREE_LIST を作り直す。置き換えが無ければ元のまま返す。
// 置き換えたときは、警告に出すために前後の指定を from・to に入れる
static tree filter_args(tree args, std::string *from, std::string *to) {
if (!args) return args;
bool changed = false;
tree head = NULL_TREE, *tail = &head;
for (tree a = args; a; a = TREE_CHAIN(a)) {
tree v = TREE_VALUE(a);
if (TREE_CODE(v) != STRING_CST) return args;
std::string f = filter_str(TREE_STRING_POINTER(v));
if (f != TREE_STRING_POINTER(v)) changed = true;
if (!from->empty()) *from += ',', *to += ',';
*from += TREE_STRING_POINTER(v);
*to += f;
*tail = build_tree_list(NULL_TREE, build_string(f.size() + 1, f.c_str()));
tail = &TREE_CHAIN(*tail);
}
return changed ? head : args;
}
// 警告を出した置き換え前の指定。同じ指定には 1 回だけ出す。
// GCC は pragma の指定を写して、その後に宣言される関数すべてに target 属性として付けるので、
// 毎回出すと関数の数だけ警告が並ぶ
static std::set<std::string> warned;
// 置き換えたことを提出者に知らせる(提出のページの「コンパイルメッセージ」に出る)
static void warn_replaced(location_t loc, const std::string &from, const std::string &to) {
if (in_system_header_at(loc) || !warned.insert(from).second) return;
std::string msg = "判定サーバーの CPU (AMD Zen 3) は AVX-512 を持たないため、target(\"" + from +
"\") を target(\"" + to + "\") として扱います (https://yukicoder.me/help/environments)";
warning_at(loc, 0, "%s", msg.c_str());
}
static bool my_pragma_parse(tree args, tree pop_target) {
if (!args || in_system_header_at(input_location)) return orig_pragma_parse(args, pop_target);
std::string from, to;
tree f = filter_args(args, &from, &to);
if (f != args) warn_replaced(input_location, from, to);
return orig_pragma_parse(f, pop_target);
}
// 属性は常に絞る。#pragma GCC target の引数は元のまま覚えられ、その後に宣言される関数(システムヘッダの関数も)に
// target 属性として付くので、ヘッダの関数だけ絞らずにおくと、呼ぶ側と target が食い違ってインライン展開できなくなる
static bool my_valid_attribute_p(tree fndecl, tree name, tree args, int flags) {
std::string from, to;
tree f = filter_args(args, &from, &to);
if (f != args) warn_replaced(fndecl ? DECL_SOURCE_LOCATION(fndecl) : input_location, from, to);
return orig_valid_attribute_p(fndecl, name, f, flags);
}
// i386 の pragma_parse は言語の初期化(init_pragma)で設定されるので、翻訳単位の開始時に差し替える
static void on_start_unit(void *, void *) {
if (targetm.target_option.pragma_parse != my_pragma_parse) {
orig_pragma_parse = targetm.target_option.pragma_parse;
targetm.target_option.pragma_parse = my_pragma_parse;
}
if (targetm.target_option.valid_attribute_p != my_valid_attribute_p) {
orig_valid_attribute_p = targetm.target_option.valid_attribute_p;
targetm.target_option.valid_attribute_p = my_valid_attribute_p;
}
}
int plugin_init(struct plugin_name_args *info, struct plugin_gcc_version *ver) {
if (!plugin_default_version_check(ver, &gcc_version)) return 1;
register_callback(info->base_name, PLUGIN_START_UNIT, on_start_unit, nullptr);
return 0;
}
言語ごとのメモリ
言語ごとに、処理系の起動だけで使うメモリが違います。作問でメモリ制限を決めるときは 言語別メモリを参照してください。
128 ビット整数と多倍長整数
64 ビットに収まらない整数の書き方は、言語別のテクを参照してください。
ライブラリ
上の表のバージョンに + ACL と書かれている言語では ac-library (AtCoder Library) が使えます。
C++ 系は本家をそのまま /usr/include/ に置いてあり、それ以外は有志による移植版です。
移植版はおおむね
AtCoder が採用しているものと同じですが、
バージョンは一致しません(言語アップデートした時の最新を入れているため)。
読み込み方は言語ごとに違うので、各行の提出例(No.9017)を見てください。
- C++ / cLay … ac-library(本家)。
C++11 で使えるのは
dsumincostflowstringの3つだけです [C++の提出例] - C# / F# … ac-library-csharp [C#の提出例] [F#の提出例]
- Java / Kotlin … ac-library-java [Javaの提出例] [Kotlinの提出例]
- Clojure … Java と同じ jar [Clojureの提出例]
- Scala … ac-library-scala。
実行は
java Mainなのでobject Mainにdef mainが要ります [Scalaの提出例] - Go … ac-library-go [Goの提出例]
- Rust … ac-library-rs [Rustの提出例]
- Python3 / PyPy3 … ac-library-python [Python3の提出例] [PyPy3の提出例]
- Ruby … ac-library-rb [Rubyの提出例]
- Crystal … ac-library.cr [Crystalの提出例]
- Haskell … ac-library-hs [Haskellの提出例]
- JavaScript / TypeScript … ac-library-js [JavaScriptの提出例] [TypeScriptの提出例]
- Nim … Nim-ACL [Nimの提出例]
Fix では次のライブラリが使えます(import CPLib.UnionFind; のようにモジュールを import するだけで使えます)。
- binary-heap 0.2.1 (MIT)
- bool-array 0.1.2 (MIT)
- character 1.0.1 (MIT)
- cp-library 0.15.2 (CC0-1.0)
- gmp-fix 0.11.0 (MIT)
- hash 1.1.3 (MIT)
- hashmap 2.1.0 (MIT)
- hashset 2.1.0 (MIT)
- math 2.0.2 (MIT)
- minilib-binary 0.8.0 (MIT)
- minilib-collection 0.10.0 (MIT)
- minilib-common 0.15.0 (MIT)
- minilib-comonad 0.8.0 (MIT)
- minilib-math 0.10.0 (MIT)
- minilib-monad 0.13.0 (MIT)
- minilib-random 0.9.0 (MIT)
- mpfr-fix 0.8.0 (MIT)
- random 1.1.3 (MIT)
- ring-buffer 0.1.2 (MIT)
- time 2.0.1 (MIT)
brainfuckは http://esoteric.sange.fi/brainfuck/impl/interp/BFI.cの処理系を使用。(gcc 16.1.0 でビルド)
Text言語は cat 相当の最小バイナリ fcat で実行しています。(fcatの実装)
通常の cat は毎回の起動で ① 動的リンカ(ld.so)による libc の読み込み・シンボル解決、 ② glibc の起動処理(TLS・ロケール・malloc 等の初期化) のコストがかかります。 fcat はこれらを持たない(libc/CRT を使わず起動処理ゼロ)ため高速です。
cLayについてはこちら
yukicoderではgcc 12.3.0(C++14)でビルド、実行しています
入れて欲しいコンパイラがありましたら、ご連絡ください。(Ubuntu 25.04 で動作するもの)
もしくはDockerfileを頂ければスムーズかもしれません。
/proc/cpuinfo
(今後、予告なく変更する可能性があります、あくまでも2026-10-25 17:12:41現在のものです。)
コアが複数あっても、ジャッジのコアは1つに制限しています。
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 106 model name : Intel(R) Xeon(R) CPU @ 2.60GHz stepping : 6 microcode : 0xffffffff cpu MHz : 2600.062 cache size : 55296 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 22 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat avx512vbmi umip avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid fsrm md_clear arch_capabilities bugs : spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb bhi ibpb_no_ret spectre_v2_user its its_native_only bogomips : 5200.12 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 106 model name : Intel(R) Xeon(R) CPU @ 2.60GHz stepping : 6 microcode : 0xffffffff cpu MHz : 2600.062 cache size : 55296 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 22 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat avx512vbmi umip avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid fsrm md_clear arch_capabilities bugs : spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb bhi ibpb_no_ret spectre_v2_user its its_native_only bogomips : 5200.12 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management:
各コンパイラバージョン
万が一、上の記述と異なるものがある場合は下のコマンドが最新です。(2026-11-03 12:44:02現在)
+ g++ --version
+ gcc --version
+ g++-16 --version
g++ (Ubuntu 14.2.0-19ubuntu2) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
gcc (Ubuntu 14.2.0-19ubuntu2) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
g++-16 (Homebrew GCC 16.2.0) 16.2.0
Copyright (C) 2026 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ g++-15 --version
g++-15 (Homebrew GCC 15.3.0) 15.3.0
Copyright (C) 2025 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ g++-12 --version
g++-12 (Ubuntu 12.4.0-5ubuntu1) 12.4.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ gcc-15 --version
gcc-15 (Homebrew GCC 15.3.0) 15.3.0
Copyright (C) 2025 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ gcc-12 --version
gcc-12 (Ubuntu 12.4.0-5ubuntu1) 12.4.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ clang++ --version
Homebrew clang version 23.1.4
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/linuxbrew/.linuxbrew/Cellar/llvm/23.1.4/bin
+ awk '/^#define BOOST_VERSION / {v = $3; printf "boost %d.%d.%d\n", int(v / 100000), int(v / 100) % 1000, v % 100}' /usr/local/include/boost/version.hpp
boost 1.92.0
+ java -version
openjdk version "27.0.1.0.3" 2026-10-24
OpenJDK Runtime Environment Homebrew (build 27.0.1.0.3)
OpenJDK 64-Bit Server VM Homebrew (build 27.0.1.0.3, mixed mode, sharing)
+ dotnet --version
10.0.403
+ head -n2
+ csc -version
3.9.0-6.21124.20 (db94f4cc)
+ head -n2
+ mono --version
Mono JIT compiler version 6.12.0.200 (tarball Tue Jul 11 21:37:50 UTC 2023)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
+ head -n2
+ mcs --version
Mono C# compiler version 6.12.0.200
+ head -n2
+ perl -version
This is perl 5, version 44, subversion 0 (v5.44.0) built for x86_64-linux-thread-multi
+ raku -version
Welcome to Rakudo™ v2026.09.
Implementing the Raku® Programming Language v6.d.
Built on MoarVM version 2026.09.
+ php --version
PHP 8.5.12 (cli) (built: Oct 19 2026 17:02:46) (NTS)
Copyright (c) The PHP Group
Built by Homebrew
Zend Engine v4.5.12, Copyright (c) Zend Technologies
with Zend OPcache v8.5.12, Copyright (c), by Zend Technologies
+ python2x --version
Python 2.7.18
+ python3 --version
Python 3.15.2
+ cat
+ python3 ver.py
numpy: 2.5.4
scipy: 1.18.1
+ pypy2 --version
Python 2.7.18 (c8e5dc4b395b, Jul 03 2025, 08:04:34)
[PyPy 7.3.20 with GCC 10.2.1 20210130 (Red Hat 10.2.1-11)]
+ pypy3 --version
Python 3.12.15 (d90944c94ad6, Oct 21 2026, 06:13:18)
[PyPy 8.0.1 with GCC 13.3.0]
+ ruby --version
ruby 4.0.9 (2026-10-23 revision 3e93b23afc) +PRISM [x86_64-linux]
+ dmd --version
DMD64 D Compiler v2.113.0
Copyright (C) 1999-2026 by The D Language Foundation, All Rights Reserved written by Walter Bright
+ go version
go version go1.27.3 linux/amd64
+ ghc --version
The Glorious Glasgow Haskell Compilation System, version 9.14.1
+ scalac -version
Scala compiler version 3.10.0 -- Copyright 2002-2026, LAMP/EPFL
+ head -n2
+ nim --version
Nim Compiler Version 2.2.12 [Linux: amd64]
Compiled at 2026-09-08
+ rustc --version
rustc 1.99.1 (58cf8f9c3 2026-10-13) (Homebrew)
+ kotlinc -version
info: kotlinc-jvm 2.4.21 (JRE 27.0.1.0.3)
+ gosh -V
Gauche scheme shell, version 0.9.15 [utf-8,pthreads], x86_64-pc-linux-gnu
(version "0.9.15")
(command "gosh")
(scheme.id gauche)
(languages scheme r5rs r7rs)
(encodings utf-8)
(website "https://practical-scheme.net/gauche")
(build.platform "x86_64-pc-linux-gnu")
(build.configure "--enable-multibyte=utf-8" "--with-ca-bundle=/home/linuxbrew/.linuxbrew/share/ca-certificates/cacert.pem" "--disable-debug" "--disable-dependency-tracking" "--prefix=/home/linuxbrew/.linuxbrew/Cellar/gauche/0.9.15_1" "--libdir=/home/linuxbrew/.linuxbrew/Cellar/gauche/0.9.15_1/lib" "CC=gcc-12")
(scheme.path "/home/linuxbrew/.linuxbrew/Cellar/gauche/0.9.15_1/share/gauche-0.98/site/lib" "/home/linuxbrew/.linuxbrew/Cellar/gauche/0.9.15_1/share/gauche-0.98/0.9.15/lib")
(threads pthreads)
(gauche.net.tls mbedtls)
+ crystal -v
Crystal 1.22.1 (2026-10-22)
LLVM: 23.1.4
Default target: x86_64-unknown-linux-gnu
+ swiftc --version
Swift version 6.4.1 (swift-6.4.1-RELEASE)
Target: x86_64-unknown-linux-gnu
+ ocamlfind ocamlopt -version
ocamlfind: [WARNING] Cannot read directory ./stublibs which is mentioned in ld.conf
5.5.2
+ clojure -e '(clojure-version)'
WARNING: Implicit use of clojure.main with options is deprecated, use -M -e (clojure-version)
"1.12.6"
+ dotnet fsi --version
Welcome to .NET 10.0!
---------------------
SDK Version: 10.0.403
Telemetry
---------
The .NET tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.
Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry
----------------
Installed an ASP.NET Core HTTPS development certificate.
To trust the certificate, run 'dotnet dev-certs https --trust'
Learn about HTTPS: https://aka.ms/dotnet-https
----------------
Write your first app: https://aka.ms/dotnet-hello-world
Find out what's new: https://aka.ms/dotnet-whats-new
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------
Microsoft (R) F# Interactive version 15.2.403.0 for F# 10.0
+ luajit -v
LuaJIT 2.1.1792588164 -- Copyright (C) 2005-2026 Mike Pall. https://luajit.org/
+ julia --version
julia version 1.13.3
+ head -n2
+ gfortran-16 --version
GNU Fortran (Homebrew GCC 16.2.0) 16.2.0
Copyright (C) 2026 Free Software Foundation, Inc.
+ node --version
v26.12.1
+ tsc --version
Version 7.0.2
+ bun --version
1.4.3
+ fix --version
fix 1.6.0 (acb96cf)
+ sbcl --version
SBCL 2.6.9
+ mlton_wrapper
MLton 20241230
+ head -n2
+ vim --version
VIM - Vi IMproved 9.2 (2026 Feb 14, compiled Oct 27 2026 15:11:56)
Included patches: 1-1250
+ head -n2
+ bash --version
GNU bash, version 5.2.37(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2022 Free Software Foundation, Inc.
+ head -n2
+ cat --version
cat (GNU coreutils) 9.5
Copyright (C) 2024 Free Software Foundation, Inc.
+ elixir -v
warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by running "locale" in your shell) or set the ELIXIR_ERL_OPTIONS="+fnu" environment variable
Erlang/OTP 29 [erts-17.1.1] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [jit:ns]
Elixir 1.20.4 (compiled with Erlang/OTP 29)
+ /usr/bin/kuinc_core -v
Kuin Programming Language v.2021.9.17
(C)Kuina-chan
+ nasm -v
NASM version 3.02 compiled on Jun 29 2026
+ sed -n 9p
+ clay
+ echo ''
// cLay version 20250308-1
++ head -1
++ sed -n 's/^version = "\(.*\)"/\1/p' /whitespace-rs/Cargo.toml
++ git -C /whitespace-rs log -1 '--format=%h %cd' --date=short
+ echo 'whitespacers 1.3.0 (5e496ec 2025-03-18)'
whitespacers 1.3.0 (5e496ec 2025-03-18)