What this distributed-systems coding problem tests
This is a hard coding problem commonly seen in quant and systems-focused roles. It combines graph traversal, data structure design, and careful handling of conflicting state — specifically, how to detect and resolve fork points in a task dependency graph where multiple tasks point to the same successor.
The core challenge is not just following chains, but identifying when the logged task history contains conflicts (two different predecessors for the same task) and correctly discarding the chronologically later branch and all its ancestors. You'll need to reconstruct valid task chains, compute rolling statistics (average and maximum duration), and output results in a canonical order. Edge cases around chain boundaries and duplicate references matter as much as the main algorithm.
- Graph reconstruction from implicit edge lists
- Cycle detection and topological reasoning
- State conflict resolution with temporal ordering
- Aggregation and filtering over connected components