Consider , edges: , , , . Topological order: [, , , ]. Initialize: . Process city : Update cities and . . parent[2] = 1, parent[3] = 1.
Process city : Update city . dp[4] = max(-Infinity, 2 + 1) = 3. parent[4] = 2. Process city : Update city . dp[4] = max(3, 2 + 1) = 3. No change. Final: dp[4] = 3. Backtrack: . Reverse: [, , ].