Graph
Starter code: p7.cpp
Given a directed graph, output the number of strong components in the graph. The algorithm must run in linear time.
Hint: checkout the algorithm in figure 6.16 in the textbook, and the example execution in figure 6.17
Input format:
line 1: number of nodes in the graph n
line 2 to 1+n: first number is the node label; second number is the number of outgoing edges; the rest is the successor of the current node.
note: the nodes are labeled 1, 2, ..., n.
Example 1
Input: 8 1 1 2 2 3 3 4 5 3 1 1 4 3 1 6 8 5 1 6 6 1 7 7 1 5 8 1 6 Output: 3 Explanation: The graph has 3 strongly connected components.
Example 2
Input:
16
1 0
2 1 4
3 1 2
4 2 3 7
5 2 4 7
6 1 5
7 2 1 6
8 2 11 5
9 2 8 6
10 1 9
11 1 10
12 1 16
13 3 2 5 12
14 2 13 7
15 2 10 14
16 1 14
Output:
5
Explanation:
The graph has 5 strongly connected components.