Optimize a directed graph representing a neural network by selecting a root node that minimizes the number of edge reversals needed. The graph has n nodes numbered from 1 to n and n-1 edges, where the i^th edge connects node g_from[i] to g_to[i].
Select any node as the root, then reverse as many edges as necessary to make all edges flow away from the root. Find the root node choice that requires the minimum number of edge reversals.
If node 2 is selected as the root, edges 1→4 and 3→4 need to be reversed. The minimum number of edges to be inverted is 2.

Hard