Implement Prototype(n int,edges [][3]int,source int) ([]*int,error) by simple-path exploration and separate cycle inspection; Solve uses repeated relaxation plus one negative-cycle check pass. Directed edges are (from,to,weight). Return indexed minimum integer costs, nil for unreachable and pointer zero at source. Loops, parallel edges, signed weights are valid. Error for n<=0, invalid source/endpoints, or any source-reachable negative cycle. Unreachable negative cycles do not raise. Preserve input; sums fit int.
Edit exercise.go; retain the public types and signatures. prototype and final are separate stages. The executable tests recover panics as failures, report named checks, and exit nonzero on any failure. A successful run must execute at least one check. Tests use logical time or explicit synchronization where relevant.
Complete the starter code, then run the checks.
Results and errors will appear here.