Riverside Power Grid Check
You can think of this as a small game with a very specific goal. In Riverside Power Grid Check, you are trying to work toward the right number by following one clear idea.
Here, you are mostly deciding whether a rule stays true while you look through the input. Sometimes that means checking if things are connected, balanced, or allowed. Sometimes it means noticing the first place where the rule breaks. The answer depends on being careful from beginning to end.
For example, if the input is n = 6, lines = [[0,1],[1,2],[0,2],[3,4]], origin = 3, the answer is 2. Only substations 3 and 4 are reachable from the origin segment. Another example is n = 4, lines = [], origin = 2, which gives 1. With no power lines connected, only the origin substation is inspected.
This is a friendly practice problem, but it still rewards careful reading. The key is noticing the exact moment when the rule stays true or breaks.
Example Input & Output
Only substations 3 and 4 are reachable from the origin segment.
The crew moves sequentially across each line and inspects every substation.
With no power lines connected, only the origin substation is inspected.
Algorithm Flow

Best Answers
import java.util.*;
class Solution {
public int power_grid_coverage(int n, int[][] lines, int origin) {
Map<Integer, List<Integer>> adj = new HashMap<>();
for (int[] line : lines) {
adj.computeIfAbsent(line[0], k -> new ArrayList<>()).add(line[1]);
adj.computeIfAbsent(line[1], k -> new ArrayList<>()).add(line[0]);
}
if (!adj.containsKey(origin)) return 1;
Set<Integer> visited = new HashSet<>();
Queue<Integer> queue = new LinkedList<>();
visited.add(origin);
queue.offer(origin);
while (!queue.isEmpty()) {
int u = queue.poll();
if(adj.containsKey(u)) {
for (int v : adj.get(u)) {
if (visited.add(v)) {
queue.offer(v);
}
}
}
}
return visited.size();
}
}Comments (0)
Join the Discussion
Share your thoughts, ask questions, or help others with this Challenge.
