If there is a player who dominated all the others, then there is exactly one vertex v in the graph without incoming edges. Make DFS starting with v. If you can reach any other peak, then v is the dominant peak.
EDIT 1: As kaktusito suggested, we could condense the graph before applying DFS.
EDIT 2: It seems there is no need to explicitly calculate all related components, apply condensation, build a DAG, and find dominant vertices. Instead, here's a simpler solution:
First run DFS on the graph and find the node v with the highest end time. If the graph has winners, then v must be among them. Otherwise, there would be another vertex u such that v is reachable from u and has a later end time. Now, to find other winners, find all the nodes that are reachable from v in the transposed graph using DFS or BFS from v. The complexity of this algorithm is still O (V + E), but the implementation (and constant) is significantly simpler.
source share