AtCoder
Language Update

Nov. 2024

C++23 [proposal]

The contents of this repository are temporary proposal.

AtCoder Language Update – Nov. 2024
C++23 [proposal]

workflows:expand-template workflows:generate-pages workflows:test-on-docker

GCC: 14.2.0

Clang: 19.1.7

Library

Official

Utility

Advanced STL-like

Mathematical

Machine learning

Comments

Solver

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

Environment variable

Warning

Optimization

Comments

Limit-relaxing

Extra features

Comments

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'