Input square symmetric matrix, optional cost means no edge; zero/negative costs allowed. Validate shape and symmetry including diagonal shape before ignoring diagonal edges. Return MST total or nullopt disconnected; [] returns 0. Invalid matrix throws invalid_argument. Prototype convert to edges/MST; final dense O(V²) Prim/O(V) auxiliary memory. Preserve every row.
Public signatures:
Opt<Int> prototype(const Vec<Vec<Opt<Int>>>& costs);
Opt<Int> solve(const Vec<Vec<Opt<Int>>>& costs);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.