adj represents the adjacency list of the directed graph edge_count represents the number of edges emerging from a vertex
unordered_map < int , int > edge_count ; for ( int i = 0 ; i < adj . size ( ) ; i ++ ) {