AtCoder Language Update – Nov. 2024
C++23 [proposal]
GCC: 14.2.0
Clang: 19.1.7
Library
Official
- AC Library:
1.5.1
- The official, original library provided by AtCoder.
- inherited
Utility
- Range-v3:
0.12.0
- A predecessor for some features that may be implemented in future C++.
- proposed at 2024/11/11 23:46
- 「いずれ利用できるようになるので,先取りしておくことに否定的である必要はない」
- 「いずれ C++ 標準入りするなら,早期から使えるようにしたところで長期的には特に問題ない」
- unordered_dense:
4.4.0
- A densely stored hashmap (and hashset) based on robin-hood hashing and backward shift deletion.
- proposed at 2024/11/10 07:24
- 「機能面を見るに,C++ 標準 (GNU 拡張含む) や Boost で十分に思える.性能面で優れているところが動機だと思うが,それで外部ライブラリの導入を進めると際限なく広がってしまうので,やはり反対」
Advanced STL-like
- Abseil:
20240722.0
- A set of libraries developed by Google to argument C++ Standard Library.
- proposed at 2024/11/10 08:28
- 「機能面を見るに,C++ 標準 (GNU 拡張含む) や Boost で十分に思える.性能面で優れているところが動機だと思うが,それで外部ライブラリの導入を進めると際限なく広がってしまうので,やはり反対」
- Boost:
1.86.0
- A set of portable, versatile libraries that work well with C++ Standard Library.
- inherited
Mathematical
- Eigen:
3.4.0-4
(apt)- A C++ template library for linear algebra.
- inherited
- 「機能面を見るに,C++ 標準 (GNU 拡張含む) や Boost で十分に思える.性能面で優れているところが動機だと思うが,それで外部ライブラリの導入を進めると際限なく広がってしまうので,やはり反対」
- GMP:
2:6.3.0+dfsg-2ubuntu6.1
(apt)- The GNU Multiple Precision Arithmetic Library
- inherited
Machine learning
- LibTorch:
2.5.1
- A C++ bindings for PyTorch.
- proposed at 2024/11/10 08:28
- 「過去問は機械学習が本番一位を取った回があり (中略) 普通に使えるチャンスがあるのかも」
- LightGBM:
4.5.0
- A gradient boosting framework that uses tree based learning algorithms.
- inherited (as a proposal)
Comments
- 「AtCoder は今後 Heuristic 系コンテストにも力を入れていくようなので,それに対応して導入するのはアリじゃないか」
- 「現状提案されてるのは大体もう Python から使えることを考えると大きな影響はないのでは」
Solver
- OR-Tools:
9.11
- A portable software designed by Google to solve combinatorial optimization problems.
- inherited (as a proposal)
- Z3:
4.13.3
- A theorem prover designed by Microsoft Research to solve satisfiability modulo theories (SMT).
- inherited (as a proposal)
Comments
Compile flags
Some other flags might be appended, depending on libraries that is to be installed; see also compile script, which appears below.
Basic
-std=gnu++23
Environment variable
-DONLINE_JUDGE
-DATCODER
Warning
-Wall
-Wextra
Optimization
-O2
-O3
(not yet implemented)- proposed at 2024/11/19 10:52
- 「Topcoder で採用例がある」
-march=native
-flto=auto
Comments
Limit-relaxing
-fconstexpr-depth=1024
-fconstexpr-loop-limit=524288
-fconstexpr-ops-limit=67108864
- Each value specified is double the default.
- inherited
- 「(設定値が大きい場合) 困る例がある」
- 「コンパイル時間が長くなりサーバーが重くなる原因になるので,制限をきつくしてもいい」
- 「コンパイル時計算は遅いとのことで,デフォルトの上限を緩和するのはトラブルの元」
- 備考: かつては設定できる最大値 (
4294967295
) が指定されていた.
Extra features
-lstdc++exp
- enables experimental library features
- proposed at 2024/11/10 16:36
- 「競プロ (特に Algo) とはほぼ関係ない (導入しても大きな問題はない) のでは」
- 「標準ライブラリにあるのであれば有効にしてもいいのでは」
- 「Codeforces で採用例がある」
- 「
<stacktrace>
ないし<experimental/filesystem>
を include しない限り等しいバイナリを吐くはず」
-fopenmp
Comments
- 「オプションが導入されたときに環境が本当に改善されるのか慎重に考えてほしい」
-
「言語のオプションのレギュレーションが必要かどうかは AtCoder 社が考えることであり,先回り忖度して自粛する必要はない」
- 「他のコンテストサイトの環境とかけ離れるのには大きく反対」
- 「アルゴリズムコンテストの目的を考えると,なんでもかんでも高速に・便利にすればよいというものではない」
-
「(強力なライブラリやオプションについて) もし悪影響が目立ち始めたら,GPT 同様にその時考えるというスタイルでいいのでは」
- 「あくまで C++ 標準の上での勝負だと思っているので,外部ライブラリには基本反対」
GCC
Install Script
#!/bin/bash
########## AUTO-GENERATED ##########
# Do not modify this file manually #
####################################
# shellcheck disable=all
PARALLEL="$(nproc)"
AC_VARIANT=gcc
BUILD_FLAGS=(
"-std=gnu++23"
"-w"
"-lstdc++exp"
)
set -eu
export AC_TEMP_DIR="/tmp/ac_install/${AC_VARIANT}"
export AC_INSTALL_DIR="/opt/ac_install/${AC_VARIANT}"
rm -rf "${AC_TEMP_DIR}" "${AC_INSTALL_DIR}"
sudo mkdir -p "${AC_TEMP_DIR}" "${AC_INSTALL_DIR}/include" "${AC_INSTALL_DIR}/lib"
### Compiler
if [[ "${AC_VARIANT}" == "gcc" ]]; then
# gcc
(
VERSION="14.2.0-4ubuntu2~24.04"
set -eu
if "${AC_NO_BUILD_COMPILER:-false}"; then exit 0; fi
echo "::group::GCC"
sudo apt-get install -y "g++-14=${VERSION}"
echo "::endgroup::"
)
CC="gcc-14"
CXX="g++-14"
else
# clang
(
VERSION="19.1.7"
set -eu
if "${AC_NO_BUILD_COMPILER:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::Clang"
sudo apt-get install -y lsb-release software-properties-common gnupg
sudo wget https://apt.llvm.org/llvm.sh
sudo chmod +x ./llvm.sh
sudo ./llvm.sh 19
sudo ln -s "$(which clang-19)" "/usr/bin/clang"
sudo ln -s "$(which clang++-19)" "/usr/bin/clang++"
sudo apt-get install -y libc++-19-dev
sudo apt-get purge -y --auto-remove lsb-release software-properties-common gnupg
echo "::endgroup::"
)
{ # generate 'slack' bits/stdc++.h
sudo mkdir -p "${AC_INSTALL_DIR}/include/bits"
find /usr/lib/llvm-19/include/c++/v1 -maxdepth 1 -type f ! -iname '__**' ! -iname '**.**' -exec echo '#include <{}>' \; |
sudo tee "${AC_INSTALL_DIR}/include/bits/stdc++.h"
}
CC="clang-19"
CXX="clang++-19"
fi
### Libraries
echo "::group::tools"
sudo apt-get install -y git cmake ninja-build pigz pbzip2
echo "::endgroup::"
CMAKE_ENVIRONMENT=(
-G "Ninja"
-DCFLAGS:STRING="-w"
-DCMAKE_C_COMPILER:STRING="${CC}"
-DCMAKE_CXX_COMPILER:STRING="${CXX}"
-DCMAKE_INSTALL_MESSAGE:STRING=NEVER
)
BOOST_BUILDER_CONFIG="using ${AC_VARIANT} : : ${CXX} ;"
if ccache -v; then
echo "ccache enabled"
export CCACHE_ENABLED=1
CMAKE_ENVIRONMENT+=(
-DCMAKE_C_COMPILER_LAUNCHER:STRING=ccache
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache
)
BOOST_BUILDER_CONFIG="using ${AC_VARIANT} : : ccache ${CXX} ;"
fi
export CMAKE_ENVIRONMENT
export BOOST_BUILDER_CONFIG
# abseil
(
VERSION="20240722.0"
set -eu
if [[ "${AC_NO_BUILD_abseil:-false}" == true && "${AC_NO_BUILD_or_tools:-false}" == true ]]; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::abseil"
sudo mkdir -p ./abseil
sudo wget -q "https://github.com/abseil/abseil-cpp/releases/download/${VERSION}/abseil-cpp-${VERSION}.tar.gz" -O ./abseil.tar.gz
sudo tar -I pigz -xf ./abseil.tar.gz -C ./abseil --strip-components 1
cd ./abseil
sudo mkdir -p ./build && cd ./build
CMAKE_ARGUMENTS=(
"${CMAKE_ENVIRONMENT[@]}"
-DABSL_ENABLE_INSTALL:BOOL=ON
-DABSL_PROPAGATE_CXX_STD:BOOL=ON
-DABSL_USE_SYSTEM_INCLUDES:BOOL=ON
-DCMAKE_INSTALL_PREFIX:PATH="${AC_INSTALL_DIR}"
-DCMAKE_CXX_FLAGS:STRING="-fPIC ${BUILD_FLAGS[*]}"
)
if [[ -v AC_RUN_TEST ]] && [[ "${AC_RUN_TEST}" = "true" ]]; then
sudo cmake -DABSL_BUILD_TESTING=ON -DABSL_USE_GOOGLETEST_HEAD=ON "${CMAKE_ARGUMENTS[@]}" ..
sudo make "-j${PARALLEL}"
sudo ctest --parallel "${PARALLEL}"
else
sudo cmake "${CMAKE_ARGUMENTS[@]}" ..
fi
sudo cmake --build . --target install
echo "::endgroup::"
)
# ac-library
(
VERSION="1.5.1"
set -eu
if "${AC_NO_BUILD_ac_library:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::AC Library"
sudo wget -q "https://github.com/atcoder/ac-library/releases/download/v${VERSION}/ac-library.zip" -O ./ac-library.zip
sudo unzip -oq ./ac-library.zip -d ./ac-library
cp -rf ./ac-library/atcoder "${AC_INSTALL_DIR}/include"
echo "::endgroup::"
)
# boost
(
VERSION="1.86.0"
set -eu
if "${AC_NO_BUILD_boost:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::boost"
sudo mkdir -p ./boost/
sudo wget -q "https://archives.boost.io/release/${VERSION}/source/boost_${VERSION//./_}.tar.bz2" -O ./boost.tar.bz2
sudo tar -I pbzip2 -xf ./boost.tar.bz2 -C ./boost/ --strip-components 1
cd ./boost/
if [[ -v BOOST_BUILDER_CONFIG ]]; then
echo "${BOOST_BUILDER_CONFIG}" | sudo tee -a ./user-config.jam
else
sudo touch ./user-config.jam
fi
if [[ -v CCACHE_ENABLED ]]; then
sudo sed -i \
-e 's/test_compiler g++$TOOLSET_SUFFIX/test_compiler "ccache g++$TOOLSET_SUFFIX"/g' \
-e 's/test_compiler clang++$TOOLSET_SUFFIX/test_compiler "ccache clang++$TOOLSET_SUFFIX"/g' \
./tools/build/src/engine/build.sh
fi
sudo ./bootstrap.sh \
--with-toolset="${AC_VARIANT}" \
--without-libraries=mpi,graph_parallel \
--prefix="${AC_INSTALL_DIR}"
sudo ./b2 \
toolset="${AC_VARIANT}" \
link=static \
threading=single \
variant=release \
cflags="-w" \
cxxflags="${BUILD_FLAGS[*]}" \
--user-config="./user-config.jam" \
-j"${PARALLEL}" -d0 \
install
echo "::endgroup::"
)
# eigen
(
VERSION="3.4.0-4"
set -xeu
if [[ "${AC_NO_BUILD_eigen:-false}" == true && \
"${AC_NO_BUILD_light_gbm:-false}" == true && \
"${AC_NO_BUILD_or_tools:-false}" == true ]]; then
exit 0
fi
echo "::group::Eigen3"
sudo apt-get install -y "libeigen3-dev=${VERSION}"
sudo mkdir -p "${AC_INSTALL_DIR}/cmake"
sudo cp -Trf /usr/include/eigen3 "${AC_INSTALL_DIR}/include"
# copy and patch cmake files to build OR-Tools.
sudo cp -f \
/usr/share/eigen3/cmake/Eigen3Targets.cmake \
/usr/share/eigen3/cmake/Eigen3Config.cmake \
"${AC_INSTALL_DIR}/cmake"
CMAKE_PATH="${AC_INSTALL_DIR}/include"
CMAKE_PATH="${CMAKE_PATH//'/opt/'/}"
sudo sed -i \
-e "s/include\/eigen3/${CMAKE_PATH//'/'/'\/'}/g" \
"${AC_INSTALL_DIR}/cmake/Eigen3Targets.cmake"
sudo apt-get remove -y libeigen3-dev
echo "::endgroup::"
)
# gmp
(
VERSION="2:6.3.0+dfsg-2ubuntu6.1"
set -eu
if "${AC_NO_BUILD_gmp:-false}"; then exit 0; fi
echo "::group::gmp"
sudo apt-get install -y "libgmp3-dev=${VERSION}"
echo "::endgroup::"
)
# libtorch
(
VERSION="2.6.0"
set -eu
if [[ "${AC_NO_BUILD_libtorch:-false}" == true || \
"${AC_VARIANT}" == "clang" ]]; then
exit 0
fi
cd "${AC_TEMP_DIR}"
echo "::group::LibTorch"
sudo wget "https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-${VERSION}%2Bcpu.zip" -O ./libtorch.zip
sudo unzip -o ./libtorch.zip -d .
# remove protobuf, which or-tools has as its dependencies.
sudo rm -f ./libtorch/lib/libprotobuf.a
sudo rm -f ./libtorch/lib/libprotobuf-lite.a
sudo rm -f ./libtorch/lib/libprotoc.a
sudo cp -Trf ./libtorch/include "${AC_INSTALL_DIR}/include"
sudo cp -Trf ./libtorch/lib "${AC_INSTALL_DIR}/lib"
echo "::endgroup::"
)
# light-gbm
(
VERSION="4.5.0"
set -eu
if [[ "${AC_NO_BUILD_light_gbm:-false}" == true || "${AC_VARIANT}" == "clang" ]]; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::LightGBM"
if [ -d ./light-gbm/ ]; then sudo rm -rf ./light-gbm/; fi
sudo mkdir -p ./light-gbm
sudo wget -q "https://github.com/microsoft/LightGBM/releases/download/v${VERSION}/lightgbm-${VERSION}.tar.gz" -O ./light-gbm.tar.gz
sudo tar -I pigz -xf ./light-gbm.tar.gz -C ./light-gbm/ --strip-components 1
cd ./light-gbm
sudo rm -rf ./lightgbm
sudo rm -rf ./external_libs/eigen
sudo mkdir -p ./build && cd ./build
sudo cmake "${CMAKE_ENVIRONMENT[@]}" \
-DBUILD_CLI:BOOL=OFF \
-DBUILD_STATIC_LIB=ON \
-DUSE_HOMEBREW_FALLBACK=OFF \
-DCMAKE_INSTALL_PREFIX:PATH="${AC_INSTALL_DIR}" \
-DCMAKE_CXX_FLAGS:STRING="${BUILD_FLAGS[*]} -I${AC_INSTALL_DIR}/include" \
..
sudo cmake --build . --target install
echo "::endgroup::"
)
# or-tools
(
VERSION="9.11"
set -eu
if "${AC_NO_BUILD_or_tools:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::OR-Tools"
sudo mkdir -p ./or-tools
sudo wget -q "https://github.com/google/or-tools/archive/refs/tags/v${VERSION}.tar.gz" -O ./or-tools.tar.gz
sudo tar -I pigz -xf ./or-tools.tar.gz -C ./or-tools --strip-components 1
cd ./or-tools
BUILD_TESTING=OFF
if [[ -v AC_RUN_TEST ]] && [[ "${AC_RUN_TEST}" = "true" ]]; then
BUILD_TESTING=ON
fi
sudo mkdir -p ./build && cd ./build
sudo cmake "${CMAKE_ENVIRONMENT[@]}" \
-DBUILD_ZLIB:BOOL=ON -DBUILD_Protobuf:BOOL=ON -DBUILD_re2:BOOL=ON \
-DUSE_COINOR:BOOL=ON -DBUILD_CoinUtils:BOOL=ON -DBUILD_Osi:BOOL=ON -DBUILD_Clp:BOOL=ON -DBUILD_Cgl:BOOL=ON -DBUILD_Cbc:BOOL=ON \
-DUSE_GLPK:BOOL=ON -DBUILD_GLPK:BOOL=ON \
-DUSE_HIGHS:BOOL=ON -DBUILD_HIGHS:BOOL=ON \
-DUSE_SCIP:BOOL=ON -DBUILD_SCIP:BOOL=ON \
-DBUILD_SAMPLES:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF \
-DBUILD_TESTING:BOOL="${BUILD_TESTING}" \
-DCMAKE_PREFIX_PATH:PATH="${AC_INSTALL_DIR}" \
-DCMAKE_INSTALL_PREFIX:PATH="${AC_INSTALL_DIR}" \
-DBUILD_SHARED_LIBS:BOOL=OFF \
-DCMAKE_CXX_FLAGS:STRING="${BUILD_FLAGS[*]}" \
..
sudo cmake --build . --config Release --target install
if [[ -v AC_RUN_TEST ]] && [[ "${AC_RUN_TEST}" = "true" ]]; then
sudo cmake --build . --config Release --target test --parallel "${PARALLEL}"
fi
echo "::endgroup::"
)
# range-v3
(
VERSION="0.12.0"
set -eu
if "${AC_NO_BUILD_range_v3:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::range-v3"
sudo mkdir -p ./range-v3
sudo wget -q "https://github.com/ericniebler/range-v3/archive/refs/tags/${VERSION}.tar.gz" -O ./range-v3.tar.gz
sudo tar -I pigz -xf ./range-v3.tar.gz -C ./range-v3 --strip-components 1
sudo cp -Trf ./range-v3/include "${AC_INSTALL_DIR}/include"
echo "::endgroup::"
)
# unordered_dense
(
VERSION="4.4.0"
set -eu
if "${AC_NO_BUILD_unordered_dense:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::unordered_dense"
sudo mkdir -p ./unordered_dense
sudo wget "https://github.com/martinus/unordered_dense/archive/refs/tags/v${VERSION}.tar.gz" -O ./unordered_dense.tar.gz
sudo tar -I pigz -xf ./unordered_dense.tar.gz -C ./unordered_dense --strip-components 1
cd ./unordered_dense
sudo mkdir -p ./build && cd ./build
sudo cmake "${CMAKE_ENVIRONMENT[@]}" \
-DCMAKE_INSTALL_PREFIX:PATH="${AC_INSTALL_DIR}" \
..
sudo cmake --build . --target install
echo "::endgroup::"
)
# z3
(
VERSION="4.13.3"
set -eu
if "${AC_NO_BUILD_z3:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::Z3"
sudo mkdir -p ./z3
sudo wget -q "https://github.com/Z3Prover/z3/archive/refs/tags/z3-${VERSION}.tar.gz" -O ./z3.tar.gz
sudo tar -I pigz -xf ./z3.tar.gz -C ./z3 --strip-components 1
cd ./z3
sudo mkdir -p ./build && cd ./build
sudo cmake "${CMAKE_ENVIRONMENT[@]}" \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_INSTALL_PREFIX:PATH="${AC_INSTALL_DIR}" \
-DCMAKE_CXX_FLAGS:STRING="${BUILD_FLAGS[*]}" \
..
sudo cmake --build . --target install
echo "::endgroup::"
)
if [ -v ATCODER ]; then
echo "::group::finalize"
find "${AC_INSTALL_DIR}" \
-name cmake -or -name pkgconfig -or -name bin -or -name share \
-type d -print0 |
xargs -0 sudo rm -rf
sudo apt-get purge -y --auto-remove git cmake ninja-build pigz pbzip2
echo "::endgroup::"
fi
Compile Script
#!/bin/bash
########## AUTO-GENERATED ##########
# Do not modify this file manually #
####################################
AC_VARIANT=gcc
BUILD_FLAGS=(
"-DATCODER"
"-DNOMINMAX"
"-DONLINE_JUDGE"
"-I/opt/ac_install/gcc/include"
"-I/opt/ac_install/gcc/include/"
"-I/opt/ac_install/gcc/include/torch/csrc/api/include"
"-O2"
"-Wall"
"-Wextra"
"-Wnon-virtual-dtor"
"-fconstexpr-depth=1024"
"-fconstexpr-loop-limit=524288"
"-fconstexpr-ops-limit=2097152"
"-flto=auto"
"-march=native"
"-pthread"
"-std=gnu++23"
"-lstdc++exp"
"-fopenmp"
"-L/opt/ac_install/gcc/lib"
"-labsl_bad_any_cast_impl"
"-labsl_cordz_sample_token"
"-labsl_failure_signal_handler"
"-labsl_flags_parse"
"-labsl_flags_usage"
"-labsl_flags_usage_internal"
"-labsl_log_flags"
"-labsl_periodic_sampler"
"-labsl_poison"
"-labsl_random_internal_distribution_test_util"
"-labsl_random_distributions"
"-labsl_random_seed_sequences"
"-labsl_random_internal_pool_urbg"
"-labsl_random_internal_randen"
"-labsl_random_internal_randen_hwaes"
"-labsl_random_internal_randen_hwaes_impl"
"-labsl_random_internal_randen_slow"
"-labsl_random_internal_platform"
"-labsl_random_internal_seed_material"
"-labsl_random_seed_gen_exception"
"-labsl_scoped_set_env"
"-lboost_atomic"
"-lboost_charconv"
"-lboost_chrono"
"-lboost_container"
"-lboost_context"
"-lboost_contract"
"-lboost_coroutine"
"-lboost_date_time"
"-lboost_exception"
"-lboost_fiber"
"-lboost_filesystem"
"-lboost_graph"
"-lboost_iostreams"
"-lboost_json"
"-lboost_locale"
"-lboost_log"
"-lboost_log_setup"
"-lboost_math_c99"
"-lboost_math_c99f"
"-lboost_math_c99l"
"-lboost_math_tr1"
"-lboost_math_tr1f"
"-lboost_math_tr1l"
"-lboost_nowide"
"-lboost_prg_exec_monitor"
"-lboost_process"
"-lboost_program_options"
"-lboost_random"
"-lboost_regex"
"-lboost_serialization"
"-lboost_stacktrace_from_exception"
"-lboost_system"
"-lboost_test_exec_monitor"
"-lboost_thread"
"-lboost_timer"
"-lboost_type_erasure"
"-lboost_unit_test_framework"
"-lboost_url"
"-lboost_wave"
"-lboost_wserialization"
"-lgmpxx"
"-lgmp"
"-lortools"
"-lCbc"
"-lCbcSolver"
"-lCgl"
"-lClp"
"-lClpSolver"
"-lCoinUtils"
"-lGLPK"
"-lOsi"
"-lOsiCbc"
"-lOsiClp"
"-lhighs"
"-lscip"
"-lz"
"-lprotobuf"
"-labsl_log_internal_check_op"
"-labsl_leak_check"
"-labsl_die_if_null"
"-labsl_log_internal_conditions"
"-labsl_log_internal_message"
"-labsl_examine_stack"
"-labsl_log_internal_format"
"-labsl_log_internal_proto"
"-labsl_log_internal_nullguard"
"-labsl_log_internal_log_sink_set"
"-labsl_log_sink"
"-labsl_log_entry"
"-labsl_log_initialize"
"-labsl_log_globals"
"-labsl_vlog_config_internal"
"-labsl_log_internal_fnmatch"
"-labsl_log_internal_globals"
"-labsl_statusor"
"-labsl_status"
"-labsl_strerror"
"-lutf8_validity"
"-lutf8_range"
"-pthread"
"-lre2"
"-labsl_flags_internal"
"-labsl_flags_marshalling"
"-labsl_flags_reflection"
"-labsl_flags_private_handle_accessor"
"-labsl_flags_commandlineflag"
"-labsl_flags_commandlineflag_internal"
"-labsl_flags_config"
"-labsl_flags_program_name"
"-labsl_cord"
"-labsl_cordz_info"
"-labsl_cord_internal"
"-labsl_cordz_functions"
"-labsl_cordz_handle"
"-labsl_crc_cord_state"
"-labsl_crc32c"
"-labsl_crc_internal"
"-labsl_crc_cpu_detect"
"-labsl_raw_hash_set"
"-labsl_hash"
"-labsl_city"
"-labsl_bad_variant_access"
"-labsl_low_level_hash"
"-labsl_hashtablez_sampler"
"-labsl_exponential_biased"
"-labsl_bad_optional_access"
"-labsl_str_format_internal"
"-labsl_synchronization"
"-labsl_graphcycles_internal"
"-labsl_kernel_timeout_internal"
"-labsl_stacktrace"
"-labsl_symbolize"
"-labsl_debugging_internal"
"-labsl_demangle_internal"
"-labsl_demangle_rust"
"-labsl_decode_rust_punycode"
"-labsl_utf8_for_code_point"
"-labsl_malloc_internal"
"-labsl_time"
"-labsl_civil_time"
"-labsl_strings"
"-labsl_strings_internal"
"-labsl_string_view"
"-labsl_base"
"-lrt"
"-labsl_spinlock_wait"
"-labsl_int128"
"-labsl_throw_delegate"
"-labsl_raw_logging_internal"
"-labsl_log_severity"
"-labsl_time_zone"
"-lz3"
"-ltorch"
"-ltorch_cpu"
"-lc10"
"-Wl,-R/opt/ac_install/gcc/lib"
"-l_lightgbm"
)
set -eu
if [[ "${AC_VARIANT}" = "gcc" ]]; then
g++-14 ./Main.cpp -o a.out "${BUILD_FLAGS[@]}"
else
clang++-19 ./Main.cpp -o a.out "${BUILD_FLAGS[@]}"
fi
Configuration
########## AUTO-GENERATED ##########
# Do not modify this file manually #
####################################
compile = "AC_VARIANT=gcc\nBUILD_FLAGS=(\n\"-DATCODER\"\n\"-DNOMINMAX\"\n\"-DONLINE_JUDGE\"\n\"-I/opt/ac_install/gcc/include\"\n\"-I/opt/ac_install/gcc/include/\"\n\"-I/opt/ac_install/gcc/include/torch/csrc/api/include\"\n\"-O2\"\n\"-Wall\"\n\"-Wextra\"\n\"-Wnon-virtual-dtor\"\n\"-fconstexpr-depth=1024\"\n\"-fconstexpr-loop-limit=524288\"\n\"-fconstexpr-ops-limit=2097152\"\n\"-flto=auto\"\n\"-march=native\"\n\"-pthread\"\n\"-std=gnu++23\"\n\"-lstdc++exp\"\n\"-fopenmp\"\n\"-L/opt/ac_install/gcc/lib\"\n\"-labsl_bad_any_cast_impl\"\n\"-labsl_cordz_sample_token\"\n\"-labsl_failure_signal_handler\"\n\"-labsl_flags_parse\"\n\"-labsl_flags_usage\"\n\"-labsl_flags_usage_internal\"\n\"-labsl_log_flags\"\n\"-labsl_periodic_sampler\"\n\"-labsl_poison\"\n\"-labsl_random_internal_distribution_test_util\"\n\"-labsl_random_distributions\"\n\"-labsl_random_seed_sequences\"\n\"-labsl_random_internal_pool_urbg\"\n\"-labsl_random_internal_randen\"\n\"-labsl_random_internal_randen_hwaes\"\n\"-labsl_random_internal_randen_hwaes_impl\"\n\"-labsl_random_internal_randen_slow\"\n\"-labsl_random_internal_platform\"\n\"-labsl_random_internal_seed_material\"\n\"-labsl_random_seed_gen_exception\"\n\"-labsl_scoped_set_env\"\n\"-lboost_atomic\"\n\"-lboost_charconv\"\n\"-lboost_chrono\"\n\"-lboost_container\"\n\"-lboost_context\"\n\"-lboost_contract\"\n\"-lboost_coroutine\"\n\"-lboost_date_time\"\n\"-lboost_exception\"\n\"-lboost_fiber\"\n\"-lboost_filesystem\"\n\"-lboost_graph\"\n\"-lboost_iostreams\"\n\"-lboost_json\"\n\"-lboost_locale\"\n\"-lboost_log\"\n\"-lboost_log_setup\"\n\"-lboost_math_c99\"\n\"-lboost_math_c99f\"\n\"-lboost_math_c99l\"\n\"-lboost_math_tr1\"\n\"-lboost_math_tr1f\"\n\"-lboost_math_tr1l\"\n\"-lboost_nowide\"\n\"-lboost_prg_exec_monitor\"\n\"-lboost_process\"\n\"-lboost_program_options\"\n\"-lboost_random\"\n\"-lboost_regex\"\n\"-lboost_serialization\"\n\"-lboost_stacktrace_from_exception\"\n\"-lboost_system\"\n\"-lboost_test_exec_monitor\"\n\"-lboost_thread\"\n\"-lboost_timer\"\n\"-lboost_type_erasure\"\n\"-lboost_unit_test_framework\"\n\"-lboost_url\"\n\"-lboost_wave\"\n\"-lboost_wserialization\"\n\"-lgmpxx\"\n\"-lgmp\"\n\"-lortools\"\n\"-lCbc\"\n\"-lCbcSolver\"\n\"-lCgl\"\n\"-lClp\"\n\"-lClpSolver\"\n\"-lCoinUtils\"\n\"-lGLPK\"\n\"-lOsi\"\n\"-lOsiCbc\"\n\"-lOsiClp\"\n\"-lhighs\"\n\"-lscip\"\n\"-lz\"\n\"-lprotobuf\"\n\"-labsl_log_internal_check_op\"\n\"-labsl_leak_check\"\n\"-labsl_die_if_null\"\n\"-labsl_log_internal_conditions\"\n\"-labsl_log_internal_message\"\n\"-labsl_examine_stack\"\n\"-labsl_log_internal_format\"\n\"-labsl_log_internal_proto\"\n\"-labsl_log_internal_nullguard\"\n\"-labsl_log_internal_log_sink_set\"\n\"-labsl_log_sink\"\n\"-labsl_log_entry\"\n\"-labsl_log_initialize\"\n\"-labsl_log_globals\"\n\"-labsl_vlog_config_internal\"\n\"-labsl_log_internal_fnmatch\"\n\"-labsl_log_internal_globals\"\n\"-labsl_statusor\"\n\"-labsl_status\"\n\"-labsl_strerror\"\n\"-lutf8_validity\"\n\"-lutf8_range\"\n\"-pthread\"\n\"-lre2\"\n\"-labsl_flags_internal\"\n\"-labsl_flags_marshalling\"\n\"-labsl_flags_reflection\"\n\"-labsl_flags_private_handle_accessor\"\n\"-labsl_flags_commandlineflag\"\n\"-labsl_flags_commandlineflag_internal\"\n\"-labsl_flags_config\"\n\"-labsl_flags_program_name\"\n\"-labsl_cord\"\n\"-labsl_cordz_info\"\n\"-labsl_cord_internal\"\n\"-labsl_cordz_functions\"\n\"-labsl_cordz_handle\"\n\"-labsl_crc_cord_state\"\n\"-labsl_crc32c\"\n\"-labsl_crc_internal\"\n\"-labsl_crc_cpu_detect\"\n\"-labsl_raw_hash_set\"\n\"-labsl_hash\"\n\"-labsl_city\"\n\"-labsl_bad_variant_access\"\n\"-labsl_low_level_hash\"\n\"-labsl_hashtablez_sampler\"\n\"-labsl_exponential_biased\"\n\"-labsl_bad_optional_access\"\n\"-labsl_str_format_internal\"\n\"-labsl_synchronization\"\n\"-labsl_graphcycles_internal\"\n\"-labsl_kernel_timeout_internal\"\n\"-labsl_stacktrace\"\n\"-labsl_symbolize\"\n\"-labsl_debugging_internal\"\n\"-labsl_demangle_internal\"\n\"-labsl_demangle_rust\"\n\"-labsl_decode_rust_punycode\"\n\"-labsl_utf8_for_code_point\"\n\"-labsl_malloc_internal\"\n\"-labsl_time\"\n\"-labsl_civil_time\"\n\"-labsl_strings\"\n\"-labsl_strings_internal\"\n\"-labsl_string_view\"\n\"-labsl_base\"\n\"-lrt\"\n\"-labsl_spinlock_wait\"\n\"-labsl_int128\"\n\"-labsl_throw_delegate\"\n\"-labsl_raw_logging_internal\"\n\"-labsl_log_severity\"\n\"-labsl_time_zone\"\n\"-lz3\"\n\"-ltorch\"\n\"-ltorch_cpu\"\n\"-lc10\"\n\"-Wl,-R/opt/ac_install/gcc/lib\"\n\"-l_lightgbm\")\nset -eu\nif [[ $AC_VARIANT == \"gcc\" ]];then\ng++-14 ./Main.cpp -o a.out \"${BUILD_FLAGS[@]}\"\nelse\nclang++-19 ./Main.cpp -o a.out \"${BUILD_FLAGS[@]}\"\nfi"
execution = ['./a.out']
filename = 'Main.cpp'
install = "PARALLEL=\"$(nproc)\"\nAC_VARIANT=gcc\nBUILD_FLAGS=(\n\"-std=gnu++23\"\n\"-w\"\n\"-lstdc++exp\")\nset -eu\nexport AC_TEMP_DIR=\"/tmp/ac_install/$AC_VARIANT\"\nexport AC_INSTALL_DIR=\"/opt/ac_install/$AC_VARIANT\"\nrm -rf \"$AC_TEMP_DIR\" \"$AC_INSTALL_DIR\"\nsudo mkdir -p \"$AC_TEMP_DIR\" \"$AC_INSTALL_DIR/include\" \"$AC_INSTALL_DIR/lib\"\nif [[ $AC_VARIANT == \"gcc\" ]];then\n(VERSION=\"14.2.0-4ubuntu2~24.04\"\nset -eu\nif \"${AC_NO_BUILD_COMPILER:-false}\";then exit 0;fi\necho \"::group::GCC\"\nsudo apt-get install -y \"g++-14=$VERSION\"\necho \"::endgroup::\")\nCC=\"gcc-14\"\nCXX=\"g++-14\"\nelse\n(VERSION=\"19.1.7\"\nset -eu\nif \"${AC_NO_BUILD_COMPILER:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::Clang\"\nsudo apt-get install -y lsb-release software-properties-common gnupg\nsudo wget https://apt.llvm.org/llvm.sh\nsudo chmod +x ./llvm.sh\nsudo ./llvm.sh 19\nsudo ln -s \"$(which clang-19)\" \"/usr/bin/clang\"\nsudo ln -s \"$(which clang++-19)\" \"/usr/bin/clang++\"\nsudo apt-get install -y libc++-19-dev\nsudo apt-get purge -y --auto-remove lsb-release software-properties-common gnupg\necho \"::endgroup::\")\n{\nsudo mkdir -p \"$AC_INSTALL_DIR/include/bits\"\nfind /usr/lib/llvm-19/include/c++/v1 -maxdepth 1 -type f ! -iname '__**' ! -iname '**.**' -exec echo '#include <{}>' \\;|sudo tee \"$AC_INSTALL_DIR/include/bits/stdc++.h\"\n}\nCC=\"clang-19\"\nCXX=\"clang++-19\"\nfi\necho \"::group::tools\"\nsudo apt-get install -y git cmake ninja-build pigz pbzip2\necho \"::endgroup::\"\nCMAKE_ENVIRONMENT=(\n-G \"Ninja\"\n-DCFLAGS:STRING=\"-w\"\n-DCMAKE_C_COMPILER:STRING=\"$CC\"\n-DCMAKE_CXX_COMPILER:STRING=\"$CXX\"\n-DCMAKE_INSTALL_MESSAGE:STRING=NEVER)\nBOOST_BUILDER_CONFIG=\"using $AC_VARIANT : : $CXX ;\"\nif ccache -v;then\necho \"ccache enabled\"\nexport CCACHE_ENABLED=1\nCMAKE_ENVIRONMENT+=(\n-DCMAKE_C_COMPILER_LAUNCHER:STRING=ccache\n-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache)\nBOOST_BUILDER_CONFIG=\"using $AC_VARIANT : : ccache $CXX ;\"\nfi\nexport CMAKE_ENVIRONMENT\nexport BOOST_BUILDER_CONFIG\n(VERSION=\"20240722.0\"\nset -eu\nif [[ ${AC_NO_BUILD_abseil:-false} == true && ${AC_NO_BUILD_or_tools:-false} == true ]];then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::abseil\"\nsudo mkdir -p ./abseil\nsudo wget -q \"https://github.com/abseil/abseil-cpp/releases/download/$VERSION/abseil-cpp-$VERSION.tar.gz\" -O ./abseil.tar.gz\nsudo tar -I pigz -xf ./abseil.tar.gz -C ./abseil --strip-components 1\ncd ./abseil\nsudo mkdir -p ./build&&cd ./build\nCMAKE_ARGUMENTS=(\n\"${CMAKE_ENVIRONMENT[@]}\"\n-DABSL_ENABLE_INSTALL:BOOL=ON\n-DABSL_PROPAGATE_CXX_STD:BOOL=ON\n-DABSL_USE_SYSTEM_INCLUDES:BOOL=ON\n-DCMAKE_INSTALL_PREFIX:PATH=\"$AC_INSTALL_DIR\"\n-DCMAKE_CXX_FLAGS:STRING=\"-fPIC ${BUILD_FLAGS[*]}\")\nif [[ -v AC_RUN_TEST ]]&&[[ $AC_RUN_TEST == \"true\" ]];then\nsudo cmake -DABSL_BUILD_TESTING=ON -DABSL_USE_GOOGLETEST_HEAD=ON \"${CMAKE_ARGUMENTS[@]}\" ..\nsudo make \"-j$PARALLEL\"\nsudo ctest --parallel \"$PARALLEL\"\nelse\nsudo cmake \"${CMAKE_ARGUMENTS[@]}\" ..\nfi\nsudo cmake --build . --target install\necho \"::endgroup::\")\n(VERSION=\"1.5.1\"\nset -eu\nif \"${AC_NO_BUILD_ac_library:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::AC Library\"\nsudo wget -q \"https://github.com/atcoder/ac-library/releases/download/v$VERSION/ac-library.zip\" -O ./ac-library.zip\nsudo unzip -oq ./ac-library.zip -d ./ac-library\ncp -rf ./ac-library/atcoder \"$AC_INSTALL_DIR/include\"\necho \"::endgroup::\")\n(VERSION=\"1.86.0\"\nset -eu\nif \"${AC_NO_BUILD_boost:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::boost\"\nsudo mkdir -p ./boost/\nsudo wget -q \"https://archives.boost.io/release/$VERSION/source/boost_${VERSION//./_}.tar.bz2\" -O ./boost.tar.bz2\nsudo tar -I pbzip2 -xf ./boost.tar.bz2 -C ./boost/ --strip-components 1\ncd ./boost/\nif [[ -v BOOST_BUILDER_CONFIG ]];then\necho \"$BOOST_BUILDER_CONFIG\"|sudo tee -a ./user-config.jam\nelse\nsudo touch ./user-config.jam\nfi\nif [[ -v CCACHE_ENABLED ]];then\nsudo sed -i \\\n-e 's/test_compiler g++$TOOLSET_SUFFIX/test_compiler \"ccache g++$TOOLSET_SUFFIX\"/g' \\\n-e 's/test_compiler clang++$TOOLSET_SUFFIX/test_compiler \"ccache clang++$TOOLSET_SUFFIX\"/g' \\\n./tools/build/src/engine/build.sh\nfi\nsudo ./bootstrap.sh \\\n--with-toolset=\"$AC_VARIANT\" \\\n--without-libraries=mpi,graph_parallel \\\n--prefix=\"$AC_INSTALL_DIR\"\nsudo ./b2 \\\ntoolset=\"$AC_VARIANT\" \\\nlink=static \\\nthreading=single \\\nvariant=release \\\ncflags=\"-w\" \\\ncxxflags=\"${BUILD_FLAGS[*]}\" \\\n--user-config=\"./user-config.jam\" \\\n-j\"$PARALLEL\" -d0 \\\ninstall\necho \"::endgroup::\")\n(VERSION=\"3.4.0-4\"\nset -xeu\nif [[ ${AC_NO_BUILD_eigen:-false} == true && \\\n${AC_NO_BUILD_light_gbm:-false} == true && \\\n${AC_NO_BUILD_or_tools:-false} == true ]];then\nexit 0\nfi\necho \"::group::Eigen3\"\nsudo apt-get install -y \"libeigen3-dev=$VERSION\"\nsudo mkdir -p \"$AC_INSTALL_DIR/cmake\"\nsudo cp -Trf /usr/include/eigen3 \"$AC_INSTALL_DIR/include\"\nsudo cp -f \\\n/usr/share/eigen3/cmake/Eigen3Targets.cmake \\\n/usr/share/eigen3/cmake/Eigen3Config.cmake \\\n\"$AC_INSTALL_DIR/cmake\"\nCMAKE_PATH=\"$AC_INSTALL_DIR/include\"\nCMAKE_PATH=\"${CMAKE_PATH//'/opt/'/}\"\nsudo sed -i \\\n-e \"s/include\\/eigen3/${CMAKE_PATH//'/'/'\\/'}/g\" \\\n\"$AC_INSTALL_DIR/cmake/Eigen3Targets.cmake\"\nsudo apt-get remove -y libeigen3-dev\necho \"::endgroup::\")\n(VERSION=\"2:6.3.0+dfsg-2ubuntu6.1\"\nset -eu\nif \"${AC_NO_BUILD_gmp:-false}\";then exit 0;fi\necho \"::group::gmp\"\nsudo apt-get install -y \"libgmp3-dev=$VERSION\"\necho \"::endgroup::\")\n(VERSION=\"2.6.0\"\nset -eu\nif [[ ${AC_NO_BUILD_libtorch:-false} == true || \\\n$AC_VARIANT == \"clang\" ]];then\nexit 0\nfi\ncd \"$AC_TEMP_DIR\"\necho \"::group::LibTorch\"\nsudo wget \"https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-$VERSION%2Bcpu.zip\" -O ./libtorch.zip\nsudo unzip -o ./libtorch.zip -d .\nsudo rm -f ./libtorch/lib/libprotobuf.a\nsudo rm -f ./libtorch/lib/libprotobuf-lite.a\nsudo rm -f ./libtorch/lib/libprotoc.a\nsudo cp -Trf ./libtorch/include \"$AC_INSTALL_DIR/include\"\nsudo cp -Trf ./libtorch/lib \"$AC_INSTALL_DIR/lib\"\necho \"::endgroup::\")\n(VERSION=\"4.5.0\"\nset -eu\nif [[ ${AC_NO_BUILD_light_gbm:-false} == true || $AC_VARIANT == \"clang\" ]];then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::LightGBM\"\nif [ -d ./light-gbm/ ];then sudo rm -rf ./light-gbm/;fi\nsudo mkdir -p ./light-gbm\nsudo wget -q \"https://github.com/microsoft/LightGBM/releases/download/v$VERSION/lightgbm-$VERSION.tar.gz\" -O ./light-gbm.tar.gz\nsudo tar -I pigz -xf ./light-gbm.tar.gz -C ./light-gbm/ --strip-components 1\ncd ./light-gbm\nsudo rm -rf ./lightgbm\nsudo rm -rf ./external_libs/eigen\nsudo mkdir -p ./build&&cd ./build\nsudo cmake \"${CMAKE_ENVIRONMENT[@]}\" \\\n-DBUILD_CLI:BOOL=OFF \\\n-DBUILD_STATIC_LIB=ON \\\n-DUSE_HOMEBREW_FALLBACK=OFF \\\n-DCMAKE_INSTALL_PREFIX:PATH=\"$AC_INSTALL_DIR\" \\\n-DCMAKE_CXX_FLAGS:STRING=\"${BUILD_FLAGS[*]} -I$AC_INSTALL_DIR/include\" \\\n..\nsudo cmake --build . --target install\necho \"::endgroup::\")\n(VERSION=\"9.11\"\nset -eu\nif \"${AC_NO_BUILD_or_tools:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::OR-Tools\"\nsudo mkdir -p ./or-tools\nsudo wget -q \"https://github.com/google/or-tools/archive/refs/tags/v$VERSION.tar.gz\" -O ./or-tools.tar.gz\nsudo tar -I pigz -xf ./or-tools.tar.gz -C ./or-tools --strip-components 1\ncd ./or-tools\nBUILD_TESTING=OFF\nif [[ -v AC_RUN_TEST ]]&&[[ $AC_RUN_TEST == \"true\" ]];then\nBUILD_TESTING=ON\nfi\nsudo mkdir -p ./build&&cd ./build\nsudo cmake \"${CMAKE_ENVIRONMENT[@]}\" \\\n-DBUILD_ZLIB:BOOL=ON -DBUILD_Protobuf:BOOL=ON -DBUILD_re2:BOOL=ON \\\n-DUSE_COINOR:BOOL=ON -DBUILD_CoinUtils:BOOL=ON -DBUILD_Osi:BOOL=ON -DBUILD_Clp:BOOL=ON -DBUILD_Cgl:BOOL=ON -DBUILD_Cbc:BOOL=ON \\\n-DUSE_GLPK:BOOL=ON -DBUILD_GLPK:BOOL=ON \\\n-DUSE_HIGHS:BOOL=ON -DBUILD_HIGHS:BOOL=ON \\\n-DUSE_SCIP:BOOL=ON -DBUILD_SCIP:BOOL=ON \\\n-DBUILD_SAMPLES:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF \\\n-DBUILD_TESTING:BOOL=\"$BUILD_TESTING\" \\\n-DCMAKE_PREFIX_PATH:PATH=\"$AC_INSTALL_DIR\" \\\n-DCMAKE_INSTALL_PREFIX:PATH=\"$AC_INSTALL_DIR\" \\\n-DBUILD_SHARED_LIBS:BOOL=OFF \\\n-DCMAKE_CXX_FLAGS:STRING=\"${BUILD_FLAGS[*]}\" \\\n..\nsudo cmake --build . --config Release --target install\nif [[ -v AC_RUN_TEST ]]&&[[ $AC_RUN_TEST == \"true\" ]];then\nsudo cmake --build . --config Release --target test --parallel \"$PARALLEL\"\nfi\necho \"::endgroup::\")\n(VERSION=\"0.12.0\"\nset -eu\nif \"${AC_NO_BUILD_range_v3:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::range-v3\"\nsudo mkdir -p ./range-v3\nsudo wget -q \"https://github.com/ericniebler/range-v3/archive/refs/tags/$VERSION.tar.gz\" -O ./range-v3.tar.gz\nsudo tar -I pigz -xf ./range-v3.tar.gz -C ./range-v3 --strip-components 1\nsudo cp -Trf ./range-v3/include \"$AC_INSTALL_DIR/include\"\necho \"::endgroup::\")\n(VERSION=\"4.4.0\"\nset -eu\nif \"${AC_NO_BUILD_unordered_dense:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::unordered_dense\"\nsudo mkdir -p ./unordered_dense\nsudo wget \"https://github.com/martinus/unordered_dense/archive/refs/tags/v$VERSION.tar.gz\" -O ./unordered_dense.tar.gz\nsudo tar -I pigz -xf ./unordered_dense.tar.gz -C ./unordered_dense --strip-components 1\ncd ./unordered_dense\nsudo mkdir -p ./build&&cd ./build\nsudo cmake \"${CMAKE_ENVIRONMENT[@]}\" \\\n-DCMAKE_INSTALL_PREFIX:PATH=\"$AC_INSTALL_DIR\" \\\n..\nsudo cmake --build . --target install\necho \"::endgroup::\")\n(VERSION=\"4.13.3\"\nset -eu\nif \"${AC_NO_BUILD_z3:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::Z3\"\nsudo mkdir -p ./z3\nsudo wget -q \"https://github.com/Z3Prover/z3/archive/refs/tags/z3-$VERSION.tar.gz\" -O ./z3.tar.gz\nsudo tar -I pigz -xf ./z3.tar.gz -C ./z3 --strip-components 1\ncd ./z3\nsudo mkdir -p ./build&&cd ./build\nsudo cmake \"${CMAKE_ENVIRONMENT[@]}\" \\\n-DCMAKE_BUILD_TYPE:STRING=Release \\\n-DCMAKE_INSTALL_PREFIX:PATH=\"$AC_INSTALL_DIR\" \\\n-DCMAKE_CXX_FLAGS:STRING=\"${BUILD_FLAGS[*]}\" \\\n..\nsudo cmake --build . --target install\necho \"::endgroup::\")\nif [ -v ATCODER ];then\necho \"::group::finalize\"\nfind \"$AC_INSTALL_DIR\" \\\n-name cmake -or -name pkgconfig -or -name bin -or -name share \\\n-type d -print0|xargs -0 sudo rm -rf\nsudo apt-get purge -y --auto-remove git cmake ninja-build pigz pbzip2\necho \"::endgroup::\"\nfi"
language = 'C++23'
name = 'GCC'
object = 'a.out'
version = '14.2.0'
[library]
[library.abseil]
version = '20240722.0'
[[library.abseil.license]]
name = 'Apache-2.0'
url = 'https://github.com/abseil/abseil-cpp/blob/master/LICENSE'
[library.ac-library]
version = '1.5.1'
[[library.ac-library.license]]
name = 'CC0-1.0'
url = 'https://github.com/atcoder/ac-library/blob/master/LICENSE'
[library.boost]
version = '1.86.0'
[[library.boost.license]]
name = 'BSL-1.0'
url = 'https://www.boost.org/LICENSE_1_0.txt'
[library.cbc]
indirect = true
[[library.cbc.license]]
name = 'EPL-2.0'
url = 'https://github.com/coin-or/Cbc/blob/master/LICENSE'
[library.cgl]
indirect = true
[[library.cgl.license]]
name = 'EPL-2.0'
url = 'https://github.com/coin-or/Cgl/blob/master/LICENSE'
[library.clp]
indirect = true
[[library.clp.license]]
name = 'EPL-2.0'
url = 'https://github.com/coin-or/Clp/blob/master/LICENSE'
[library.coin-utils]
indirect = true
[[library.coin-utils.license]]
name = 'EPL-2.0'
url = 'https://github.com/coin-or/CoinUtils/blob/master/LICENSE'
[library.compute]
indirect = true
[[library.compute.license]]
name = 'BSL-1.0'
url = 'https://github.com/boostorg/compute/blob/36350b7de849300bd3d72a05d8bf890ca405a014/LICENSE_1_0.txt'
[library.eigen]
version = '3.4.0'
[[library.eigen.license]]
name = 'MPL-2.0-no-copyleft-exception'
url = 'https://www.mozilla.org/en-US/MPL/2.0/'
[library.fast_double_parser]
indirect = true
[[library.fast_double_parser.license]]
name = 'Apache-2.0'
url = 'https://github.com/lemire/fast_double_parser/blob/efec03532ef65984786e5e32dbc81f6e6a55a115/LICENSE'
[[library.fast_double_parser.license]]
name = 'BSL-1.0'
url = 'https://github.com/lemire/fast_double_parser/blob/efec03532ef65984786e5e32dbc81f6e6a55a115/LICENSE.BSL'
[library.fmt]
indirect = true
[[library.fmt.license]]
name = 'X11-distribute-modifications-variant'
url = 'https://github.com/fmtlib/fmt/blob/f5e54359df4c26b6230fc61d38aa294581393084/LICENSE.rst'
[library.glpk]
indirect = true
[[library.glpk.license]]
name = 'GPL-3.0-or-later'
url = 'https://www.gnu.org/licenses/gpl-3.0.html'
[library.gmp]
version = '6.3.0'
[[library.gmp.license]]
name = 'LGPL-3.0-only'
url = 'https://www.gnu.org/licenses/lgpl-3.0.html'
[[library.gmp.license]]
name = 'GPL-2.0-only'
url = 'https://www.gnu.org/licenses/old-licenses/gpl-2.0.html'
[library.highs]
indirect = true
[[library.highs.license]]
name = 'MIT'
url = 'https://github.com/ERGO-Code/HiGHS/blob/master/LICENSE.txt'
[library.libtorch]
version = '2.6.0'
[[library.libtorch.license]]
name = 'BSD-3-Clause'
url = 'https://github.com/pytorch/pytorch/blob/main/LICENSE'
[[library.libtorch.license]]
name = 'BSD-2-Clause'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L8-L50'
[[library.libtorch.license]]
name = 'BSD-2-Clause-Views'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L53-L103'
[[library.libtorch.license]]
name = 'Apache-2.0'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L105-L285'
[[library.libtorch.license]]
name = 'BSD-3-Clause'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L287-L321'
[[library.libtorch.license]]
name = 'BSD-3-Clause'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L324-L360'
[[library.libtorch.license]]
name = 'BSL-1.0'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L362-L418'
[[library.libtorch.license]]
name = 'MIT-CMU'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L420-L456'
[library.light-gbm]
version = '4.5.0'
[[library.light-gbm.license]]
name = 'MIT'
url = 'https://github.com/microsoft/light-gbm/blob/master/LICENSE'
[library.or-tools]
version = '9.11'
[[library.or-tools.license]]
name = 'Apache-2.0'
url = 'https://github.com/google/or-tools/blob/stable/LICENSE'
[library.osi]
indirect = true
[[library.osi.license]]
name = 'EPL-2.0'
url = 'https://github.com/coin-or/Osi/blob/master/LICENSE'
[library.protobuf]
indirect = true
[[library.protobuf.license]]
name = 'BSD-3-Clause-Clear'
url = 'https://github.com/protocolbuffers/protobuf/blob/main/LICENSE'
[library.range-v3]
version = '0.12.0'
[[library.range-v3.license]]
name = 'BSL-1.0'
url = 'https://github.com/ericniebler/range-v3/blob/0.12.0/LICENSE.txt#L2'
[[library.range-v3.license]]
name = '!License-dummy'
url = 'https://github.com/ericniebler/range-v3/blob/0.12.0/LICENSE.txt#L28'
[[library.range-v3.license]]
name = '!License-dummy'
url = 'https://github.com/ericniebler/range-v3/blob/0.12.0/LICENSE.txt#L107'
[[library.range-v3.license]]
name = '!License-dummy'
url = 'https://github.com/ericniebler/range-v3/blob/0.12.0/LICENSE.txt#L127'
[library.re2]
indirect = true
[[library.re2.license]]
name = 'BSD-Source-Code'
url = 'https://github.com/google/re2/blob/main/LICENSE'
[library.scip]
indirect = true
[[library.scip.license]]
name = 'Apache-2.0'
url = 'https://www.scipopt.org/scip/doc/html/LICENSE.php'
[library.unordered_dense]
version = '4.4.0'
[[library.unordered_dense.license]]
name = 'MIT'
url = 'https://github.com/martinus/unordered_dense/blob/main/LICENSE'
[library.z3]
version = '4.13.3'
[[library.z3.license]]
name = 'MIT'
url = 'https://github.com/Z3Prover/z3/blob/z3-4.13.3/LICENSE.txt'
[library.zlib]
indirect = true
[[library.zlib.license]]
name = 'Zlib'
url = 'https://www.zlib.net/zlib_license.html'
[[license]]
name = 'GPL-3.0-or-later'
url = 'https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Copying.html'
Clang
Install Script
#!/bin/bash
########## AUTO-GENERATED ##########
# Do not modify this file manually #
####################################
# shellcheck disable=all
PARALLEL="$(nproc)"
AC_VARIANT=clang
BUILD_FLAGS=(
"-fexperimental-library"
"-fuse-ld=lld"
"-rtlib=compiler-rt"
"-std=gnu++23"
"-stdlib=libc++"
"-unwindlib=libunwind"
"-w"
""
)
set -eu
export AC_TEMP_DIR="/tmp/ac_install/${AC_VARIANT}"
export AC_INSTALL_DIR="/opt/ac_install/${AC_VARIANT}"
rm -rf "${AC_TEMP_DIR}" "${AC_INSTALL_DIR}"
sudo mkdir -p "${AC_TEMP_DIR}" "${AC_INSTALL_DIR}/include" "${AC_INSTALL_DIR}/lib"
### Compiler
if [[ "${AC_VARIANT}" == "gcc" ]]; then
# gcc
(
VERSION="14.2.0-4ubuntu2~24.04"
set -eu
if "${AC_NO_BUILD_COMPILER:-false}"; then exit 0; fi
echo "::group::GCC"
sudo apt-get install -y "g++-14=${VERSION}"
echo "::endgroup::"
)
CC="gcc-14"
CXX="g++-14"
else
# clang
(
VERSION="19.1.7"
set -eu
if "${AC_NO_BUILD_COMPILER:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::Clang"
sudo apt-get install -y lsb-release software-properties-common gnupg
sudo wget https://apt.llvm.org/llvm.sh
sudo chmod +x ./llvm.sh
sudo ./llvm.sh 19
sudo ln -s "$(which clang-19)" "/usr/bin/clang"
sudo ln -s "$(which clang++-19)" "/usr/bin/clang++"
sudo apt-get install -y libc++-19-dev
sudo apt-get purge -y --auto-remove lsb-release software-properties-common gnupg
echo "::endgroup::"
)
{ # generate 'slack' bits/stdc++.h
sudo mkdir -p "${AC_INSTALL_DIR}/include/bits"
find /usr/lib/llvm-19/include/c++/v1 -maxdepth 1 -type f ! -iname '__**' ! -iname '**.**' -exec echo '#include <{}>' \; |
sudo tee "${AC_INSTALL_DIR}/include/bits/stdc++.h"
}
CC="clang-19"
CXX="clang++-19"
fi
### Libraries
echo "::group::tools"
sudo apt-get install -y git cmake ninja-build pigz pbzip2
echo "::endgroup::"
CMAKE_ENVIRONMENT=(
-G "Ninja"
-DCFLAGS:STRING="-w"
-DCMAKE_C_COMPILER:STRING="${CC}"
-DCMAKE_CXX_COMPILER:STRING="${CXX}"
-DCMAKE_INSTALL_MESSAGE:STRING=NEVER
)
BOOST_BUILDER_CONFIG="using ${AC_VARIANT} : : ${CXX} ;"
if ccache -v; then
echo "ccache enabled"
export CCACHE_ENABLED=1
CMAKE_ENVIRONMENT+=(
-DCMAKE_C_COMPILER_LAUNCHER:STRING=ccache
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache
)
BOOST_BUILDER_CONFIG="using ${AC_VARIANT} : : ccache ${CXX} ;"
fi
export CMAKE_ENVIRONMENT
export BOOST_BUILDER_CONFIG
# abseil
(
VERSION="20240722.0"
set -eu
if [[ "${AC_NO_BUILD_abseil:-false}" == true && "${AC_NO_BUILD_or_tools:-false}" == true ]]; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::abseil"
sudo mkdir -p ./abseil
sudo wget -q "https://github.com/abseil/abseil-cpp/releases/download/${VERSION}/abseil-cpp-${VERSION}.tar.gz" -O ./abseil.tar.gz
sudo tar -I pigz -xf ./abseil.tar.gz -C ./abseil --strip-components 1
cd ./abseil
sudo mkdir -p ./build && cd ./build
CMAKE_ARGUMENTS=(
"${CMAKE_ENVIRONMENT[@]}"
-DABSL_ENABLE_INSTALL:BOOL=ON
-DABSL_PROPAGATE_CXX_STD:BOOL=ON
-DABSL_USE_SYSTEM_INCLUDES:BOOL=ON
-DCMAKE_INSTALL_PREFIX:PATH="${AC_INSTALL_DIR}"
-DCMAKE_CXX_FLAGS:STRING="-fPIC ${BUILD_FLAGS[*]}"
)
if [[ -v AC_RUN_TEST ]] && [[ "${AC_RUN_TEST}" = "true" ]]; then
sudo cmake -DABSL_BUILD_TESTING=ON -DABSL_USE_GOOGLETEST_HEAD=ON "${CMAKE_ARGUMENTS[@]}" ..
sudo make "-j${PARALLEL}"
sudo ctest --parallel "${PARALLEL}"
else
sudo cmake "${CMAKE_ARGUMENTS[@]}" ..
fi
sudo cmake --build . --target install
echo "::endgroup::"
)
# ac-library
(
VERSION="1.5.1"
set -eu
if "${AC_NO_BUILD_ac_library:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::AC Library"
sudo wget -q "https://github.com/atcoder/ac-library/releases/download/v${VERSION}/ac-library.zip" -O ./ac-library.zip
sudo unzip -oq ./ac-library.zip -d ./ac-library
cp -rf ./ac-library/atcoder "${AC_INSTALL_DIR}/include"
echo "::endgroup::"
)
# boost
(
VERSION="1.86.0"
set -eu
if "${AC_NO_BUILD_boost:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::boost"
sudo mkdir -p ./boost/
sudo wget -q "https://archives.boost.io/release/${VERSION}/source/boost_${VERSION//./_}.tar.bz2" -O ./boost.tar.bz2
sudo tar -I pbzip2 -xf ./boost.tar.bz2 -C ./boost/ --strip-components 1
cd ./boost/
if [[ -v BOOST_BUILDER_CONFIG ]]; then
echo "${BOOST_BUILDER_CONFIG}" | sudo tee -a ./user-config.jam
else
sudo touch ./user-config.jam
fi
if [[ -v CCACHE_ENABLED ]]; then
sudo sed -i \
-e 's/test_compiler g++$TOOLSET_SUFFIX/test_compiler "ccache g++$TOOLSET_SUFFIX"/g' \
-e 's/test_compiler clang++$TOOLSET_SUFFIX/test_compiler "ccache clang++$TOOLSET_SUFFIX"/g' \
./tools/build/src/engine/build.sh
fi
sudo ./bootstrap.sh \
--with-toolset="${AC_VARIANT}" \
--without-libraries=mpi,graph_parallel \
--prefix="${AC_INSTALL_DIR}"
sudo ./b2 \
toolset="${AC_VARIANT}" \
link=static \
threading=single \
variant=release \
cflags="-w" \
cxxflags="${BUILD_FLAGS[*]}" \
--user-config="./user-config.jam" \
-j"${PARALLEL}" -d0 \
install
echo "::endgroup::"
)
# eigen
(
VERSION="3.4.0-4"
set -xeu
if [[ "${AC_NO_BUILD_eigen:-false}" == true && \
"${AC_NO_BUILD_light_gbm:-false}" == true && \
"${AC_NO_BUILD_or_tools:-false}" == true ]]; then
exit 0
fi
echo "::group::Eigen3"
sudo apt-get install -y "libeigen3-dev=${VERSION}"
sudo mkdir -p "${AC_INSTALL_DIR}/cmake"
sudo cp -Trf /usr/include/eigen3 "${AC_INSTALL_DIR}/include"
# copy and patch cmake files to build OR-Tools.
sudo cp -f \
/usr/share/eigen3/cmake/Eigen3Targets.cmake \
/usr/share/eigen3/cmake/Eigen3Config.cmake \
"${AC_INSTALL_DIR}/cmake"
CMAKE_PATH="${AC_INSTALL_DIR}/include"
CMAKE_PATH="${CMAKE_PATH//'/opt/'/}"
sudo sed -i \
-e "s/include\/eigen3/${CMAKE_PATH//'/'/'\/'}/g" \
"${AC_INSTALL_DIR}/cmake/Eigen3Targets.cmake"
sudo apt-get remove -y libeigen3-dev
echo "::endgroup::"
)
# gmp
(
VERSION="2:6.3.0+dfsg-2ubuntu6.1"
set -eu
if "${AC_NO_BUILD_gmp:-false}"; then exit 0; fi
echo "::group::gmp"
sudo apt-get install -y "libgmp3-dev=${VERSION}"
echo "::endgroup::"
)
# libtorch
(
VERSION=null
set -eu
if [[ "${AC_NO_BUILD_libtorch:-false}" == true || \
"${AC_VARIANT}" == "clang" ]]; then
exit 0
fi
cd "${AC_TEMP_DIR}"
echo "::group::LibTorch"
sudo wget "https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-${VERSION}%2Bcpu.zip" -O ./libtorch.zip
sudo unzip -o ./libtorch.zip -d .
# remove protobuf, which or-tools has as its dependencies.
sudo rm -f ./libtorch/lib/libprotobuf.a
sudo rm -f ./libtorch/lib/libprotobuf-lite.a
sudo rm -f ./libtorch/lib/libprotoc.a
sudo cp -Trf ./libtorch/include "${AC_INSTALL_DIR}/include"
sudo cp -Trf ./libtorch/lib "${AC_INSTALL_DIR}/lib"
echo "::endgroup::"
)
# light-gbm
(
VERSION=null
set -eu
if [[ "${AC_NO_BUILD_light_gbm:-false}" == true || "${AC_VARIANT}" == "clang" ]]; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::LightGBM"
if [ -d ./light-gbm/ ]; then sudo rm -rf ./light-gbm/; fi
sudo mkdir -p ./light-gbm
sudo wget -q "https://github.com/microsoft/LightGBM/releases/download/v${VERSION}/lightgbm-${VERSION}.tar.gz" -O ./light-gbm.tar.gz
sudo tar -I pigz -xf ./light-gbm.tar.gz -C ./light-gbm/ --strip-components 1
cd ./light-gbm
sudo rm -rf ./lightgbm
sudo rm -rf ./external_libs/eigen
sudo mkdir -p ./build && cd ./build
sudo cmake "${CMAKE_ENVIRONMENT[@]}" \
-DBUILD_CLI:BOOL=OFF \
-DBUILD_STATIC_LIB=ON \
-DUSE_HOMEBREW_FALLBACK=OFF \
-DCMAKE_INSTALL_PREFIX:PATH="${AC_INSTALL_DIR}" \
-DCMAKE_CXX_FLAGS:STRING="${BUILD_FLAGS[*]} -I${AC_INSTALL_DIR}/include" \
..
sudo cmake --build . --target install
echo "::endgroup::"
)
# or-tools
(
VERSION="9.11"
set -eu
if "${AC_NO_BUILD_or_tools:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::OR-Tools"
sudo mkdir -p ./or-tools
sudo wget -q "https://github.com/google/or-tools/archive/refs/tags/v${VERSION}.tar.gz" -O ./or-tools.tar.gz
sudo tar -I pigz -xf ./or-tools.tar.gz -C ./or-tools --strip-components 1
cd ./or-tools
BUILD_TESTING=OFF
if [[ -v AC_RUN_TEST ]] && [[ "${AC_RUN_TEST}" = "true" ]]; then
BUILD_TESTING=ON
fi
sudo mkdir -p ./build && cd ./build
sudo cmake "${CMAKE_ENVIRONMENT[@]}" \
-DBUILD_ZLIB:BOOL=ON -DBUILD_Protobuf:BOOL=ON -DBUILD_re2:BOOL=ON \
-DUSE_COINOR:BOOL=ON -DBUILD_CoinUtils:BOOL=ON -DBUILD_Osi:BOOL=ON -DBUILD_Clp:BOOL=ON -DBUILD_Cgl:BOOL=ON -DBUILD_Cbc:BOOL=ON \
-DUSE_GLPK:BOOL=ON -DBUILD_GLPK:BOOL=ON \
-DUSE_HIGHS:BOOL=ON -DBUILD_HIGHS:BOOL=ON \
-DUSE_SCIP:BOOL=ON -DBUILD_SCIP:BOOL=ON \
-DBUILD_SAMPLES:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF \
-DBUILD_TESTING:BOOL="${BUILD_TESTING}" \
-DCMAKE_PREFIX_PATH:PATH="${AC_INSTALL_DIR}" \
-DCMAKE_INSTALL_PREFIX:PATH="${AC_INSTALL_DIR}" \
-DBUILD_SHARED_LIBS:BOOL=OFF \
-DCMAKE_CXX_FLAGS:STRING="${BUILD_FLAGS[*]}" \
..
sudo cmake --build . --config Release --target install
if [[ -v AC_RUN_TEST ]] && [[ "${AC_RUN_TEST}" = "true" ]]; then
sudo cmake --build . --config Release --target test --parallel "${PARALLEL}"
fi
echo "::endgroup::"
)
# range-v3
(
VERSION="0.12.0"
set -eu
if "${AC_NO_BUILD_range_v3:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::range-v3"
sudo mkdir -p ./range-v3
sudo wget -q "https://github.com/ericniebler/range-v3/archive/refs/tags/${VERSION}.tar.gz" -O ./range-v3.tar.gz
sudo tar -I pigz -xf ./range-v3.tar.gz -C ./range-v3 --strip-components 1
sudo cp -Trf ./range-v3/include "${AC_INSTALL_DIR}/include"
echo "::endgroup::"
)
# unordered_dense
(
VERSION="4.4.0"
set -eu
if "${AC_NO_BUILD_unordered_dense:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::unordered_dense"
sudo mkdir -p ./unordered_dense
sudo wget "https://github.com/martinus/unordered_dense/archive/refs/tags/v${VERSION}.tar.gz" -O ./unordered_dense.tar.gz
sudo tar -I pigz -xf ./unordered_dense.tar.gz -C ./unordered_dense --strip-components 1
cd ./unordered_dense
sudo mkdir -p ./build && cd ./build
sudo cmake "${CMAKE_ENVIRONMENT[@]}" \
-DCMAKE_INSTALL_PREFIX:PATH="${AC_INSTALL_DIR}" \
..
sudo cmake --build . --target install
echo "::endgroup::"
)
# z3
(
VERSION="4.13.3"
set -eu
if "${AC_NO_BUILD_z3:-false}"; then exit 0; fi
cd "${AC_TEMP_DIR}"
echo "::group::Z3"
sudo mkdir -p ./z3
sudo wget -q "https://github.com/Z3Prover/z3/archive/refs/tags/z3-${VERSION}.tar.gz" -O ./z3.tar.gz
sudo tar -I pigz -xf ./z3.tar.gz -C ./z3 --strip-components 1
cd ./z3
sudo mkdir -p ./build && cd ./build
sudo cmake "${CMAKE_ENVIRONMENT[@]}" \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_INSTALL_PREFIX:PATH="${AC_INSTALL_DIR}" \
-DCMAKE_CXX_FLAGS:STRING="${BUILD_FLAGS[*]}" \
..
sudo cmake --build . --target install
echo "::endgroup::"
)
if [ -v ATCODER ]; then
echo "::group::finalize"
find "${AC_INSTALL_DIR}" \
-name cmake -or -name pkgconfig -or -name bin -or -name share \
-type d -print0 |
xargs -0 sudo rm -rf
sudo apt-get purge -y --auto-remove git cmake ninja-build pigz pbzip2
echo "::endgroup::"
fi
Compile Script
#!/bin/bash
########## AUTO-GENERATED ##########
# Do not modify this file manually #
####################################
AC_VARIANT=clang
BUILD_FLAGS=(
"-DATCODER"
"-DNOMINMAX"
"-DONLINE_JUDGE"
"-I/opt/ac_install/clang/include"
"-I/opt/ac_install/clang/include/"
"-O2"
"-Wall"
"-Wextra"
"-Wno-float-conversion"
"-Wno-implicit-float-conversion"
"-Wno-implicit-int-float-conversion"
"-Wno-unknown-warning-option"
"-fconstexpr-depth=1024"
"-fconstexpr-steps=524288"
"-fexperimental-library"
"-flto=auto"
"-fuse-ld=lld"
"-march=native"
"-pthread"
"-rtlib=compiler-rt"
"-std=gnu++23"
"-stdlib=libc++"
"-unwindlib=libunwind"
"-L/opt/ac_install/clang/lib"
"-labsl_bad_any_cast_impl"
"-labsl_cordz_sample_token"
"-labsl_failure_signal_handler"
"-labsl_flags_parse"
"-labsl_flags_usage"
"-labsl_flags_usage_internal"
"-labsl_log_flags"
"-labsl_periodic_sampler"
"-labsl_poison"
"-labsl_random_internal_distribution_test_util"
"-labsl_random_distributions"
"-labsl_random_seed_sequences"
"-labsl_random_internal_pool_urbg"
"-labsl_random_internal_randen"
"-labsl_random_internal_randen_hwaes"
"-labsl_random_internal_randen_hwaes_impl"
"-labsl_random_internal_randen_slow"
"-labsl_random_internal_platform"
"-labsl_random_internal_seed_material"
"-labsl_random_seed_gen_exception"
"-labsl_scoped_set_env"
"-lboost_atomic"
"-lboost_charconv"
"-lboost_chrono"
"-lboost_container"
"-lboost_context"
"-lboost_contract"
"-lboost_coroutine"
"-lboost_date_time"
"-lboost_exception"
"-lboost_fiber"
"-lboost_filesystem"
"-lboost_graph"
"-lboost_iostreams"
"-lboost_json"
"-lboost_locale"
"-lboost_log"
"-lboost_log_setup"
"-lboost_math_c99"
"-lboost_math_c99f"
"-lboost_math_c99l"
"-lboost_math_tr1"
"-lboost_math_tr1f"
"-lboost_math_tr1l"
"-lboost_nowide"
"-lboost_prg_exec_monitor"
"-lboost_process"
"-lboost_program_options"
"-lboost_random"
"-lboost_regex"
"-lboost_serialization"
"-lboost_stacktrace_from_exception"
"-lboost_system"
"-lboost_test_exec_monitor"
"-lboost_thread"
"-lboost_timer"
"-lboost_type_erasure"
"-lboost_unit_test_framework"
"-lboost_url"
"-lboost_wave"
"-lboost_wserialization"
"-lgmpxx"
"-lgmp"
"-lortools"
"-lCbc"
"-lCbcSolver"
"-lCgl"
"-lClp"
"-lClpSolver"
"-lCoinUtils"
"-lGLPK"
"-lOsi"
"-lOsiCbc"
"-lOsiClp"
"-lhighs"
"-lscip"
"-lz"
"-lprotobuf"
"-labsl_log_internal_check_op"
"-labsl_leak_check"
"-labsl_die_if_null"
"-labsl_log_internal_conditions"
"-labsl_log_internal_message"
"-labsl_examine_stack"
"-labsl_log_internal_format"
"-labsl_log_internal_proto"
"-labsl_log_internal_nullguard"
"-labsl_log_internal_log_sink_set"
"-labsl_log_sink"
"-labsl_log_entry"
"-labsl_log_initialize"
"-labsl_log_globals"
"-labsl_vlog_config_internal"
"-labsl_log_internal_fnmatch"
"-labsl_log_internal_globals"
"-labsl_statusor"
"-labsl_status"
"-labsl_strerror"
"-lutf8_validity"
"-lutf8_range"
"-pthread"
"-lre2"
"-labsl_flags_internal"
"-labsl_flags_marshalling"
"-labsl_flags_reflection"
"-labsl_flags_private_handle_accessor"
"-labsl_flags_commandlineflag"
"-labsl_flags_commandlineflag_internal"
"-labsl_flags_config"
"-labsl_flags_program_name"
"-labsl_cord"
"-labsl_cordz_info"
"-labsl_cord_internal"
"-labsl_cordz_functions"
"-labsl_cordz_handle"
"-labsl_crc_cord_state"
"-labsl_crc32c"
"-labsl_crc_internal"
"-labsl_crc_cpu_detect"
"-labsl_raw_hash_set"
"-labsl_hash"
"-labsl_city"
"-labsl_bad_variant_access"
"-labsl_low_level_hash"
"-labsl_hashtablez_sampler"
"-labsl_exponential_biased"
"-labsl_bad_optional_access"
"-labsl_str_format_internal"
"-labsl_synchronization"
"-labsl_graphcycles_internal"
"-labsl_kernel_timeout_internal"
"-labsl_stacktrace"
"-labsl_symbolize"
"-labsl_debugging_internal"
"-labsl_demangle_internal"
"-labsl_demangle_rust"
"-labsl_decode_rust_punycode"
"-labsl_utf8_for_code_point"
"-labsl_malloc_internal"
"-labsl_time"
"-labsl_civil_time"
"-labsl_strings"
"-labsl_strings_internal"
"-labsl_string_view"
"-labsl_base"
"-lrt"
"-labsl_spinlock_wait"
"-labsl_int128"
"-labsl_throw_delegate"
"-labsl_raw_logging_internal"
"-labsl_log_severity"
"-labsl_time_zone"
"-Wl,-R/opt/ac_install/clang/lib"
"-lz3"
)
set -eu
if [[ "${AC_VARIANT}" = "gcc" ]]; then
g++-14 ./Main.cpp -o a.out "${BUILD_FLAGS[@]}"
else
clang++-19 ./Main.cpp -o a.out "${BUILD_FLAGS[@]}"
fi
Configuration
########## AUTO-GENERATED ##########
# Do not modify this file manually #
####################################
compile = "AC_VARIANT=clang\nBUILD_FLAGS=(\n\"-DATCODER\"\n\"-DNOMINMAX\"\n\"-DONLINE_JUDGE\"\n\"-I/opt/ac_install/clang/include\"\n\"-I/opt/ac_install/clang/include/\"\n\"-O2\"\n\"-Wall\"\n\"-Wextra\"\n\"-Wno-float-conversion\"\n\"-Wno-implicit-float-conversion\"\n\"-Wno-implicit-int-float-conversion\"\n\"-Wno-unknown-warning-option\"\n\"-fconstexpr-depth=1024\"\n\"-fconstexpr-steps=524288\"\n\"-fexperimental-library\"\n\"-flto=auto\"\n\"-fuse-ld=lld\"\n\"-march=native\"\n\"-pthread\"\n\"-rtlib=compiler-rt\"\n\"-std=gnu++23\"\n\"-stdlib=libc++\"\n\"-unwindlib=libunwind\"\n\"-L/opt/ac_install/clang/lib\"\n\"-labsl_bad_any_cast_impl\"\n\"-labsl_cordz_sample_token\"\n\"-labsl_failure_signal_handler\"\n\"-labsl_flags_parse\"\n\"-labsl_flags_usage\"\n\"-labsl_flags_usage_internal\"\n\"-labsl_log_flags\"\n\"-labsl_periodic_sampler\"\n\"-labsl_poison\"\n\"-labsl_random_internal_distribution_test_util\"\n\"-labsl_random_distributions\"\n\"-labsl_random_seed_sequences\"\n\"-labsl_random_internal_pool_urbg\"\n\"-labsl_random_internal_randen\"\n\"-labsl_random_internal_randen_hwaes\"\n\"-labsl_random_internal_randen_hwaes_impl\"\n\"-labsl_random_internal_randen_slow\"\n\"-labsl_random_internal_platform\"\n\"-labsl_random_internal_seed_material\"\n\"-labsl_random_seed_gen_exception\"\n\"-labsl_scoped_set_env\"\n\"-lboost_atomic\"\n\"-lboost_charconv\"\n\"-lboost_chrono\"\n\"-lboost_container\"\n\"-lboost_context\"\n\"-lboost_contract\"\n\"-lboost_coroutine\"\n\"-lboost_date_time\"\n\"-lboost_exception\"\n\"-lboost_fiber\"\n\"-lboost_filesystem\"\n\"-lboost_graph\"\n\"-lboost_iostreams\"\n\"-lboost_json\"\n\"-lboost_locale\"\n\"-lboost_log\"\n\"-lboost_log_setup\"\n\"-lboost_math_c99\"\n\"-lboost_math_c99f\"\n\"-lboost_math_c99l\"\n\"-lboost_math_tr1\"\n\"-lboost_math_tr1f\"\n\"-lboost_math_tr1l\"\n\"-lboost_nowide\"\n\"-lboost_prg_exec_monitor\"\n\"-lboost_process\"\n\"-lboost_program_options\"\n\"-lboost_random\"\n\"-lboost_regex\"\n\"-lboost_serialization\"\n\"-lboost_stacktrace_from_exception\"\n\"-lboost_system\"\n\"-lboost_test_exec_monitor\"\n\"-lboost_thread\"\n\"-lboost_timer\"\n\"-lboost_type_erasure\"\n\"-lboost_unit_test_framework\"\n\"-lboost_url\"\n\"-lboost_wave\"\n\"-lboost_wserialization\"\n\"-lgmpxx\"\n\"-lgmp\"\n\"-lortools\"\n\"-lCbc\"\n\"-lCbcSolver\"\n\"-lCgl\"\n\"-lClp\"\n\"-lClpSolver\"\n\"-lCoinUtils\"\n\"-lGLPK\"\n\"-lOsi\"\n\"-lOsiCbc\"\n\"-lOsiClp\"\n\"-lhighs\"\n\"-lscip\"\n\"-lz\"\n\"-lprotobuf\"\n\"-labsl_log_internal_check_op\"\n\"-labsl_leak_check\"\n\"-labsl_die_if_null\"\n\"-labsl_log_internal_conditions\"\n\"-labsl_log_internal_message\"\n\"-labsl_examine_stack\"\n\"-labsl_log_internal_format\"\n\"-labsl_log_internal_proto\"\n\"-labsl_log_internal_nullguard\"\n\"-labsl_log_internal_log_sink_set\"\n\"-labsl_log_sink\"\n\"-labsl_log_entry\"\n\"-labsl_log_initialize\"\n\"-labsl_log_globals\"\n\"-labsl_vlog_config_internal\"\n\"-labsl_log_internal_fnmatch\"\n\"-labsl_log_internal_globals\"\n\"-labsl_statusor\"\n\"-labsl_status\"\n\"-labsl_strerror\"\n\"-lutf8_validity\"\n\"-lutf8_range\"\n\"-pthread\"\n\"-lre2\"\n\"-labsl_flags_internal\"\n\"-labsl_flags_marshalling\"\n\"-labsl_flags_reflection\"\n\"-labsl_flags_private_handle_accessor\"\n\"-labsl_flags_commandlineflag\"\n\"-labsl_flags_commandlineflag_internal\"\n\"-labsl_flags_config\"\n\"-labsl_flags_program_name\"\n\"-labsl_cord\"\n\"-labsl_cordz_info\"\n\"-labsl_cord_internal\"\n\"-labsl_cordz_functions\"\n\"-labsl_cordz_handle\"\n\"-labsl_crc_cord_state\"\n\"-labsl_crc32c\"\n\"-labsl_crc_internal\"\n\"-labsl_crc_cpu_detect\"\n\"-labsl_raw_hash_set\"\n\"-labsl_hash\"\n\"-labsl_city\"\n\"-labsl_bad_variant_access\"\n\"-labsl_low_level_hash\"\n\"-labsl_hashtablez_sampler\"\n\"-labsl_exponential_biased\"\n\"-labsl_bad_optional_access\"\n\"-labsl_str_format_internal\"\n\"-labsl_synchronization\"\n\"-labsl_graphcycles_internal\"\n\"-labsl_kernel_timeout_internal\"\n\"-labsl_stacktrace\"\n\"-labsl_symbolize\"\n\"-labsl_debugging_internal\"\n\"-labsl_demangle_internal\"\n\"-labsl_demangle_rust\"\n\"-labsl_decode_rust_punycode\"\n\"-labsl_utf8_for_code_point\"\n\"-labsl_malloc_internal\"\n\"-labsl_time\"\n\"-labsl_civil_time\"\n\"-labsl_strings\"\n\"-labsl_strings_internal\"\n\"-labsl_string_view\"\n\"-labsl_base\"\n\"-lrt\"\n\"-labsl_spinlock_wait\"\n\"-labsl_int128\"\n\"-labsl_throw_delegate\"\n\"-labsl_raw_logging_internal\"\n\"-labsl_log_severity\"\n\"-labsl_time_zone\"\n\"-Wl,-R/opt/ac_install/clang/lib\"\n\"-lz3\")\nset -eu\nif [[ $AC_VARIANT == \"gcc\" ]];then\ng++-14 ./Main.cpp -o a.out \"${BUILD_FLAGS[@]}\"\nelse\nclang++-19 ./Main.cpp -o a.out \"${BUILD_FLAGS[@]}\"\nfi"
execution = ['./a.out']
filename = 'Main.cpp'
install = "PARALLEL=\"$(nproc)\"\nAC_VARIANT=clang\nBUILD_FLAGS=(\n\"-fexperimental-library\"\n\"-fuse-ld=lld\"\n\"-rtlib=compiler-rt\"\n\"-std=gnu++23\"\n\"-stdlib=libc++\"\n\"-unwindlib=libunwind\"\n\"-w\"\n\"\")\nset -eu\nexport AC_TEMP_DIR=\"/tmp/ac_install/$AC_VARIANT\"\nexport AC_INSTALL_DIR=\"/opt/ac_install/$AC_VARIANT\"\nrm -rf \"$AC_TEMP_DIR\" \"$AC_INSTALL_DIR\"\nsudo mkdir -p \"$AC_TEMP_DIR\" \"$AC_INSTALL_DIR/include\" \"$AC_INSTALL_DIR/lib\"\nif [[ $AC_VARIANT == \"gcc\" ]];then\n(VERSION=\"14.2.0-4ubuntu2~24.04\"\nset -eu\nif \"${AC_NO_BUILD_COMPILER:-false}\";then exit 0;fi\necho \"::group::GCC\"\nsudo apt-get install -y \"g++-14=$VERSION\"\necho \"::endgroup::\")\nCC=\"gcc-14\"\nCXX=\"g++-14\"\nelse\n(VERSION=\"19.1.7\"\nset -eu\nif \"${AC_NO_BUILD_COMPILER:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::Clang\"\nsudo apt-get install -y lsb-release software-properties-common gnupg\nsudo wget https://apt.llvm.org/llvm.sh\nsudo chmod +x ./llvm.sh\nsudo ./llvm.sh 19\nsudo ln -s \"$(which clang-19)\" \"/usr/bin/clang\"\nsudo ln -s \"$(which clang++-19)\" \"/usr/bin/clang++\"\nsudo apt-get install -y libc++-19-dev\nsudo apt-get purge -y --auto-remove lsb-release software-properties-common gnupg\necho \"::endgroup::\")\n{\nsudo mkdir -p \"$AC_INSTALL_DIR/include/bits\"\nfind /usr/lib/llvm-19/include/c++/v1 -maxdepth 1 -type f ! -iname '__**' ! -iname '**.**' -exec echo '#include <{}>' \\;|sudo tee \"$AC_INSTALL_DIR/include/bits/stdc++.h\"\n}\nCC=\"clang-19\"\nCXX=\"clang++-19\"\nfi\necho \"::group::tools\"\nsudo apt-get install -y git cmake ninja-build pigz pbzip2\necho \"::endgroup::\"\nCMAKE_ENVIRONMENT=(\n-G \"Ninja\"\n-DCFLAGS:STRING=\"-w\"\n-DCMAKE_C_COMPILER:STRING=\"$CC\"\n-DCMAKE_CXX_COMPILER:STRING=\"$CXX\"\n-DCMAKE_INSTALL_MESSAGE:STRING=NEVER)\nBOOST_BUILDER_CONFIG=\"using $AC_VARIANT : : $CXX ;\"\nif ccache -v;then\necho \"ccache enabled\"\nexport CCACHE_ENABLED=1\nCMAKE_ENVIRONMENT+=(\n-DCMAKE_C_COMPILER_LAUNCHER:STRING=ccache\n-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache)\nBOOST_BUILDER_CONFIG=\"using $AC_VARIANT : : ccache $CXX ;\"\nfi\nexport CMAKE_ENVIRONMENT\nexport BOOST_BUILDER_CONFIG\n(VERSION=\"20240722.0\"\nset -eu\nif [[ ${AC_NO_BUILD_abseil:-false} == true && ${AC_NO_BUILD_or_tools:-false} == true ]];then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::abseil\"\nsudo mkdir -p ./abseil\nsudo wget -q \"https://github.com/abseil/abseil-cpp/releases/download/$VERSION/abseil-cpp-$VERSION.tar.gz\" -O ./abseil.tar.gz\nsudo tar -I pigz -xf ./abseil.tar.gz -C ./abseil --strip-components 1\ncd ./abseil\nsudo mkdir -p ./build&&cd ./build\nCMAKE_ARGUMENTS=(\n\"${CMAKE_ENVIRONMENT[@]}\"\n-DABSL_ENABLE_INSTALL:BOOL=ON\n-DABSL_PROPAGATE_CXX_STD:BOOL=ON\n-DABSL_USE_SYSTEM_INCLUDES:BOOL=ON\n-DCMAKE_INSTALL_PREFIX:PATH=\"$AC_INSTALL_DIR\"\n-DCMAKE_CXX_FLAGS:STRING=\"-fPIC ${BUILD_FLAGS[*]}\")\nif [[ -v AC_RUN_TEST ]]&&[[ $AC_RUN_TEST == \"true\" ]];then\nsudo cmake -DABSL_BUILD_TESTING=ON -DABSL_USE_GOOGLETEST_HEAD=ON \"${CMAKE_ARGUMENTS[@]}\" ..\nsudo make \"-j$PARALLEL\"\nsudo ctest --parallel \"$PARALLEL\"\nelse\nsudo cmake \"${CMAKE_ARGUMENTS[@]}\" ..\nfi\nsudo cmake --build . --target install\necho \"::endgroup::\")\n(VERSION=\"1.5.1\"\nset -eu\nif \"${AC_NO_BUILD_ac_library:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::AC Library\"\nsudo wget -q \"https://github.com/atcoder/ac-library/releases/download/v$VERSION/ac-library.zip\" -O ./ac-library.zip\nsudo unzip -oq ./ac-library.zip -d ./ac-library\ncp -rf ./ac-library/atcoder \"$AC_INSTALL_DIR/include\"\necho \"::endgroup::\")\n(VERSION=\"1.86.0\"\nset -eu\nif \"${AC_NO_BUILD_boost:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::boost\"\nsudo mkdir -p ./boost/\nsudo wget -q \"https://archives.boost.io/release/$VERSION/source/boost_${VERSION//./_}.tar.bz2\" -O ./boost.tar.bz2\nsudo tar -I pbzip2 -xf ./boost.tar.bz2 -C ./boost/ --strip-components 1\ncd ./boost/\nif [[ -v BOOST_BUILDER_CONFIG ]];then\necho \"$BOOST_BUILDER_CONFIG\"|sudo tee -a ./user-config.jam\nelse\nsudo touch ./user-config.jam\nfi\nif [[ -v CCACHE_ENABLED ]];then\nsudo sed -i \\\n-e 's/test_compiler g++$TOOLSET_SUFFIX/test_compiler \"ccache g++$TOOLSET_SUFFIX\"/g' \\\n-e 's/test_compiler clang++$TOOLSET_SUFFIX/test_compiler \"ccache clang++$TOOLSET_SUFFIX\"/g' \\\n./tools/build/src/engine/build.sh\nfi\nsudo ./bootstrap.sh \\\n--with-toolset=\"$AC_VARIANT\" \\\n--without-libraries=mpi,graph_parallel \\\n--prefix=\"$AC_INSTALL_DIR\"\nsudo ./b2 \\\ntoolset=\"$AC_VARIANT\" \\\nlink=static \\\nthreading=single \\\nvariant=release \\\ncflags=\"-w\" \\\ncxxflags=\"${BUILD_FLAGS[*]}\" \\\n--user-config=\"./user-config.jam\" \\\n-j\"$PARALLEL\" -d0 \\\ninstall\necho \"::endgroup::\")\n(VERSION=\"3.4.0-4\"\nset -xeu\nif [[ ${AC_NO_BUILD_eigen:-false} == true && \\\n${AC_NO_BUILD_light_gbm:-false} == true && \\\n${AC_NO_BUILD_or_tools:-false} == true ]];then\nexit 0\nfi\necho \"::group::Eigen3\"\nsudo apt-get install -y \"libeigen3-dev=$VERSION\"\nsudo mkdir -p \"$AC_INSTALL_DIR/cmake\"\nsudo cp -Trf /usr/include/eigen3 \"$AC_INSTALL_DIR/include\"\nsudo cp -f \\\n/usr/share/eigen3/cmake/Eigen3Targets.cmake \\\n/usr/share/eigen3/cmake/Eigen3Config.cmake \\\n\"$AC_INSTALL_DIR/cmake\"\nCMAKE_PATH=\"$AC_INSTALL_DIR/include\"\nCMAKE_PATH=\"${CMAKE_PATH//'/opt/'/}\"\nsudo sed -i \\\n-e \"s/include\\/eigen3/${CMAKE_PATH//'/'/'\\/'}/g\" \\\n\"$AC_INSTALL_DIR/cmake/Eigen3Targets.cmake\"\nsudo apt-get remove -y libeigen3-dev\necho \"::endgroup::\")\n(VERSION=\"2:6.3.0+dfsg-2ubuntu6.1\"\nset -eu\nif \"${AC_NO_BUILD_gmp:-false}\";then exit 0;fi\necho \"::group::gmp\"\nsudo apt-get install -y \"libgmp3-dev=$VERSION\"\necho \"::endgroup::\")\n(VERSION=null\nset -eu\nif [[ ${AC_NO_BUILD_libtorch:-false} == true || \\\n$AC_VARIANT == \"clang\" ]];then\nexit 0\nfi\ncd \"$AC_TEMP_DIR\"\necho \"::group::LibTorch\"\nsudo wget \"https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-$VERSION%2Bcpu.zip\" -O ./libtorch.zip\nsudo unzip -o ./libtorch.zip -d .\nsudo rm -f ./libtorch/lib/libprotobuf.a\nsudo rm -f ./libtorch/lib/libprotobuf-lite.a\nsudo rm -f ./libtorch/lib/libprotoc.a\nsudo cp -Trf ./libtorch/include \"$AC_INSTALL_DIR/include\"\nsudo cp -Trf ./libtorch/lib \"$AC_INSTALL_DIR/lib\"\necho \"::endgroup::\")\n(VERSION=null\nset -eu\nif [[ ${AC_NO_BUILD_light_gbm:-false} == true || $AC_VARIANT == \"clang\" ]];then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::LightGBM\"\nif [ -d ./light-gbm/ ];then sudo rm -rf ./light-gbm/;fi\nsudo mkdir -p ./light-gbm\nsudo wget -q \"https://github.com/microsoft/LightGBM/releases/download/v$VERSION/lightgbm-$VERSION.tar.gz\" -O ./light-gbm.tar.gz\nsudo tar -I pigz -xf ./light-gbm.tar.gz -C ./light-gbm/ --strip-components 1\ncd ./light-gbm\nsudo rm -rf ./lightgbm\nsudo rm -rf ./external_libs/eigen\nsudo mkdir -p ./build&&cd ./build\nsudo cmake \"${CMAKE_ENVIRONMENT[@]}\" \\\n-DBUILD_CLI:BOOL=OFF \\\n-DBUILD_STATIC_LIB=ON \\\n-DUSE_HOMEBREW_FALLBACK=OFF \\\n-DCMAKE_INSTALL_PREFIX:PATH=\"$AC_INSTALL_DIR\" \\\n-DCMAKE_CXX_FLAGS:STRING=\"${BUILD_FLAGS[*]} -I$AC_INSTALL_DIR/include\" \\\n..\nsudo cmake --build . --target install\necho \"::endgroup::\")\n(VERSION=\"9.11\"\nset -eu\nif \"${AC_NO_BUILD_or_tools:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::OR-Tools\"\nsudo mkdir -p ./or-tools\nsudo wget -q \"https://github.com/google/or-tools/archive/refs/tags/v$VERSION.tar.gz\" -O ./or-tools.tar.gz\nsudo tar -I pigz -xf ./or-tools.tar.gz -C ./or-tools --strip-components 1\ncd ./or-tools\nBUILD_TESTING=OFF\nif [[ -v AC_RUN_TEST ]]&&[[ $AC_RUN_TEST == \"true\" ]];then\nBUILD_TESTING=ON\nfi\nsudo mkdir -p ./build&&cd ./build\nsudo cmake \"${CMAKE_ENVIRONMENT[@]}\" \\\n-DBUILD_ZLIB:BOOL=ON -DBUILD_Protobuf:BOOL=ON -DBUILD_re2:BOOL=ON \\\n-DUSE_COINOR:BOOL=ON -DBUILD_CoinUtils:BOOL=ON -DBUILD_Osi:BOOL=ON -DBUILD_Clp:BOOL=ON -DBUILD_Cgl:BOOL=ON -DBUILD_Cbc:BOOL=ON \\\n-DUSE_GLPK:BOOL=ON -DBUILD_GLPK:BOOL=ON \\\n-DUSE_HIGHS:BOOL=ON -DBUILD_HIGHS:BOOL=ON \\\n-DUSE_SCIP:BOOL=ON -DBUILD_SCIP:BOOL=ON \\\n-DBUILD_SAMPLES:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF \\\n-DBUILD_TESTING:BOOL=\"$BUILD_TESTING\" \\\n-DCMAKE_PREFIX_PATH:PATH=\"$AC_INSTALL_DIR\" \\\n-DCMAKE_INSTALL_PREFIX:PATH=\"$AC_INSTALL_DIR\" \\\n-DBUILD_SHARED_LIBS:BOOL=OFF \\\n-DCMAKE_CXX_FLAGS:STRING=\"${BUILD_FLAGS[*]}\" \\\n..\nsudo cmake --build . --config Release --target install\nif [[ -v AC_RUN_TEST ]]&&[[ $AC_RUN_TEST == \"true\" ]];then\nsudo cmake --build . --config Release --target test --parallel \"$PARALLEL\"\nfi\necho \"::endgroup::\")\n(VERSION=\"0.12.0\"\nset -eu\nif \"${AC_NO_BUILD_range_v3:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::range-v3\"\nsudo mkdir -p ./range-v3\nsudo wget -q \"https://github.com/ericniebler/range-v3/archive/refs/tags/$VERSION.tar.gz\" -O ./range-v3.tar.gz\nsudo tar -I pigz -xf ./range-v3.tar.gz -C ./range-v3 --strip-components 1\nsudo cp -Trf ./range-v3/include \"$AC_INSTALL_DIR/include\"\necho \"::endgroup::\")\n(VERSION=\"4.4.0\"\nset -eu\nif \"${AC_NO_BUILD_unordered_dense:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::unordered_dense\"\nsudo mkdir -p ./unordered_dense\nsudo wget \"https://github.com/martinus/unordered_dense/archive/refs/tags/v$VERSION.tar.gz\" -O ./unordered_dense.tar.gz\nsudo tar -I pigz -xf ./unordered_dense.tar.gz -C ./unordered_dense --strip-components 1\ncd ./unordered_dense\nsudo mkdir -p ./build&&cd ./build\nsudo cmake \"${CMAKE_ENVIRONMENT[@]}\" \\\n-DCMAKE_INSTALL_PREFIX:PATH=\"$AC_INSTALL_DIR\" \\\n..\nsudo cmake --build . --target install\necho \"::endgroup::\")\n(VERSION=\"4.13.3\"\nset -eu\nif \"${AC_NO_BUILD_z3:-false}\";then exit 0;fi\ncd \"$AC_TEMP_DIR\"\necho \"::group::Z3\"\nsudo mkdir -p ./z3\nsudo wget -q \"https://github.com/Z3Prover/z3/archive/refs/tags/z3-$VERSION.tar.gz\" -O ./z3.tar.gz\nsudo tar -I pigz -xf ./z3.tar.gz -C ./z3 --strip-components 1\ncd ./z3\nsudo mkdir -p ./build&&cd ./build\nsudo cmake \"${CMAKE_ENVIRONMENT[@]}\" \\\n-DCMAKE_BUILD_TYPE:STRING=Release \\\n-DCMAKE_INSTALL_PREFIX:PATH=\"$AC_INSTALL_DIR\" \\\n-DCMAKE_CXX_FLAGS:STRING=\"${BUILD_FLAGS[*]}\" \\\n..\nsudo cmake --build . --target install\necho \"::endgroup::\")\nif [ -v ATCODER ];then\necho \"::group::finalize\"\nfind \"$AC_INSTALL_DIR\" \\\n-name cmake -or -name pkgconfig -or -name bin -or -name share \\\n-type d -print0|xargs -0 sudo rm -rf\nsudo apt-get purge -y --auto-remove git cmake ninja-build pigz pbzip2\necho \"::endgroup::\"\nfi"
language = 'C++23'
name = 'GCC'
object = 'a.out'
version = '14.2.0'
[library]
[library.abseil]
version = '20240722.0'
[[library.abseil.license]]
name = 'Apache-2.0'
url = 'https://github.com/abseil/abseil-cpp/blob/master/LICENSE'
[library.ac-library]
version = '1.5.1'
[[library.ac-library.license]]
name = 'CC0-1.0'
url = 'https://github.com/atcoder/ac-library/blob/master/LICENSE'
[library.boost]
version = '1.86.0'
[[library.boost.license]]
name = 'BSL-1.0'
url = 'https://www.boost.org/LICENSE_1_0.txt'
[library.cbc]
indirect = true
[[library.cbc.license]]
name = 'EPL-2.0'
url = 'https://github.com/coin-or/Cbc/blob/master/LICENSE'
[library.cgl]
indirect = true
[[library.cgl.license]]
name = 'EPL-2.0'
url = 'https://github.com/coin-or/Cgl/blob/master/LICENSE'
[library.clp]
indirect = true
[[library.clp.license]]
name = 'EPL-2.0'
url = 'https://github.com/coin-or/Clp/blob/master/LICENSE'
[library.coin-utils]
indirect = true
[[library.coin-utils.license]]
name = 'EPL-2.0'
url = 'https://github.com/coin-or/CoinUtils/blob/master/LICENSE'
[library.compute]
indirect = true
[[library.compute.license]]
name = 'BSL-1.0'
url = 'https://github.com/boostorg/compute/blob/36350b7de849300bd3d72a05d8bf890ca405a014/LICENSE_1_0.txt'
[library.eigen]
version = '3.4.0'
[[library.eigen.license]]
name = 'MPL-2.0-no-copyleft-exception'
url = 'https://www.mozilla.org/en-US/MPL/2.0/'
[library.fast_double_parser]
indirect = true
[[library.fast_double_parser.license]]
name = 'Apache-2.0'
url = 'https://github.com/lemire/fast_double_parser/blob/efec03532ef65984786e5e32dbc81f6e6a55a115/LICENSE'
[[library.fast_double_parser.license]]
name = 'BSL-1.0'
url = 'https://github.com/lemire/fast_double_parser/blob/efec03532ef65984786e5e32dbc81f6e6a55a115/LICENSE.BSL'
[library.fmt]
indirect = true
[[library.fmt.license]]
name = 'X11-distribute-modifications-variant'
url = 'https://github.com/fmtlib/fmt/blob/f5e54359df4c26b6230fc61d38aa294581393084/LICENSE.rst'
[library.glpk]
indirect = true
[[library.glpk.license]]
name = 'GPL-3.0-or-later'
url = 'https://www.gnu.org/licenses/gpl-3.0.html'
[library.gmp]
version = '6.3.0'
[[library.gmp.license]]
name = 'LGPL-3.0-only'
url = 'https://www.gnu.org/licenses/lgpl-3.0.html'
[[library.gmp.license]]
name = 'GPL-2.0-only'
url = 'https://www.gnu.org/licenses/old-licenses/gpl-2.0.html'
[library.highs]
indirect = true
[[library.highs.license]]
name = 'MIT'
url = 'https://github.com/ERGO-Code/HiGHS/blob/master/LICENSE.txt'
[library.libtorch]
version = '2.6.0'
[[library.libtorch.license]]
name = 'BSD-3-Clause'
url = 'https://github.com/pytorch/pytorch/blob/main/LICENSE'
[[library.libtorch.license]]
name = 'BSD-2-Clause'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L8-L50'
[[library.libtorch.license]]
name = 'BSD-2-Clause-Views'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L53-L103'
[[library.libtorch.license]]
name = 'Apache-2.0'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L105-L285'
[[library.libtorch.license]]
name = 'BSD-3-Clause'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L287-L321'
[[library.libtorch.license]]
name = 'BSD-3-Clause'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L324-L360'
[[library.libtorch.license]]
name = 'BSL-1.0'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L362-L418'
[[library.libtorch.license]]
name = 'MIT-CMU'
url = 'https://github.com/pytorch/pytorch/blob/main/NOTICE#L420-L456'
[library.light-gbm]
version = '4.5.0'
[[library.light-gbm.license]]
name = 'MIT'
url = 'https://github.com/microsoft/light-gbm/blob/master/LICENSE'
[library.or-tools]
version = '9.11'
[[library.or-tools.license]]
name = 'Apache-2.0'
url = 'https://github.com/google/or-tools/blob/stable/LICENSE'
[library.osi]
indirect = true
[[library.osi.license]]
name = 'EPL-2.0'
url = 'https://github.com/coin-or/Osi/blob/master/LICENSE'
[library.protobuf]
indirect = true
[[library.protobuf.license]]
name = 'BSD-3-Clause-Clear'
url = 'https://github.com/protocolbuffers/protobuf/blob/main/LICENSE'
[library.range-v3]
version = '0.12.0'
[[library.range-v3.license]]
name = 'BSL-1.0'
url = 'https://github.com/ericniebler/range-v3/blob/0.12.0/LICENSE.txt#L2'
[[library.range-v3.license]]
name = '!License-dummy'
url = 'https://github.com/ericniebler/range-v3/blob/0.12.0/LICENSE.txt#L28'
[[library.range-v3.license]]
name = '!License-dummy'
url = 'https://github.com/ericniebler/range-v3/blob/0.12.0/LICENSE.txt#L107'
[[library.range-v3.license]]
name = '!License-dummy'
url = 'https://github.com/ericniebler/range-v3/blob/0.12.0/LICENSE.txt#L127'
[library.re2]
indirect = true
[[library.re2.license]]
name = 'BSD-Source-Code'
url = 'https://github.com/google/re2/blob/main/LICENSE'
[library.scip]
indirect = true
[[library.scip.license]]
name = 'Apache-2.0'
url = 'https://www.scipopt.org/scip/doc/html/LICENSE.php'
[library.unordered_dense]
version = '4.4.0'
[[library.unordered_dense.license]]
name = 'MIT'
url = 'https://github.com/martinus/unordered_dense/blob/main/LICENSE'
[library.z3]
version = '4.13.3'
[[library.z3.license]]
name = 'MIT'
url = 'https://github.com/Z3Prover/z3/blob/z3-4.13.3/LICENSE.txt'
[library.zlib]
indirect = true
[[library.zlib.license]]
name = 'Zlib'
url = 'https://www.zlib.net/zlib_license.html'
[[license]]
name = 'GPL-3.0-or-later'
url = 'https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Copying.html'