Copy initial values internally. add(index,delta) mutates one value; sum(left,right) queries half-open range. Return only sums. Negative values/deltas and empty ranges valid. Unknown op, add index outside [0,n), or invalid range throws invalid_argument. Prototype copy/scan; final Fenwick O(log n) operations. Preserve both inputs.

Public signatures:

cpp

Vec<Int> prototype(const Vec<Int>& values,const Vec<std::tuple<std::string,Int,Int>>& commands);
Vec<Int> solve(const Vec<Int>& values,const Vec<std::tuple<std::string,Int,Int>>& commands);

Compile and run from this directory:

Shell
c++ -std=c++20 -O2 -Wall -Wextra -pedantic -pthread main.cpp -o practice
./practice --stage prototype
./practice --stage final

Edit 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.

Drag or use the arrow keys to resize. Home collapses the question; End collapses the editor. Enter or double-click resets the split.
Loading editor…
No results yet.

Complete the starter code, then run the checks.
Results and errors will appear here.

C++ runtime powered by Wasmer.