Both stages return (total, first_maximum_index) for nonnegative loads. Ties choose the smallest index; empty input returns (0, nullopt). Prototype: direct scans. Final: one O(n) scan and O(1) auxiliary space. Preserve input; no additional validation. This C++ variant uses bounded Int arithmetic rather than arbitrary precision; its wide-accumulator case stays within Int range.
Public signatures:
std::pair<Int,Opt<Int>> prototype(const Vec<Int>& loads);
std::pair<Int,Opt<Int>> solve(const Vec<Int>& loads);Compile and run from this directory:
c++ -std=c++20 -O2 -Wall -Wextra -pedantic -pthread main.cpp -o practice
./practice --stage prototype
./practice --stage finalEdit exercise.hpp. Both stages start unfinished and must report failures until implemented. Keep main.cpp as the executable contract. The runner returns nonzero for a failed check, an unexpected exception, an invalid stage, or an empty suite. C++20 and only the standard library are required.
Complete the starter code, then run the checks.
Results and errors will appear here.
C++ runtime powered by Wasmer.