Riverside Power Grid Check
The riverside utility district monitors a network of electrical substations linked by power lines that allow maintenance crews to traverse either direction. Each substation carries an ID between 0 and n - 1, and the grid engineers maintain a map of every line connecting two substations. When crews begin a safety check from a specific origin, they follow the available lines to inspect neighboring substations, extending the inspection outward until every reachable substation has been verified. The district wants an automated way to tell how many substations receive attention during each tour.
Create a function that accepts the total number of substations n, the list of power lines, and the origin substation origin. Each line is stored as [u, v], representing a two-way physical link between substations u and v. The mapping may include repeated entries or appear to loop from a substation back to itself if backup connections were recorded. During the inspection, once a substation has been visited, the crews do not count it again, even if alternative routes lead back to the same location.
The function should return the total number of unique substations checked, including the origin. Sections of the grid that are disconnected from origin remain unchecked. If no lines leave origin, the inspection covers only that substation. If the grid is fully connected, the crews verify every substation in a single run. Output the coverage count as a plain integer with no additional formatting.
Example 1:
Input: n = 5, lines = [[0,1],[1,2],[2,3],[3,4]], origin = 0
Output: 5
Explanation: The crew moves sequentially across each line and inspects every substation.
Example 2:
Input: n = 6, lines = [[0,1],[1,2],[0,2],[3,4]], origin = 3
Output: 2
Explanation: Only substations 3 and 4 are reachable from the origin segment.
Example 3:
Input: n = 4, lines = [], origin = 2
Output: 1
Explanation: With no power lines connected, only the origin substation is inspected.
Related Problems
No related problems found
Comments (0)
Join the Discussion
Share your thoughts, ask questions, or help others with this problem.
