12442 - Forwarding Emails
Solution Description : DFS problem Read this line carefully in problem description - "they each pick one other person they know to email those things to every time - exactly one, no less, no more (and never themselves)" i.e Each person send email only one. For each person has only one adjacency person. The input can not be (1 to 3, 2 to 3, 1 to 2) , because for person 1 here 2 adjacency person 3 and 2. So, you can represent this graph using one dimensional array adj[N]. Do not need to stack, you can use recursion. Example: 4 1 2 2 1 4 3 3 2 The adjacency list, adj[1]=2, adj[2]=1, adj[3]=2, and adj[4]=3. Use a boolean array visit[N]
At first start from 1 If visit[1]==false then run DFS in this time count the visited node and update the visit[] array
visit[2]==true so, do not need to do anything. Now 3 visit[3]==false so, run the DFS. After that the visit[] array is
Now 4visit[4]==false so, run the DFS. After that the visit[] array is
For 4, the count_visited_node is maximum. Ans is 4. |
||||||||||||||||||||||||||||||||||||||||||