Player rivalries in linear time, not nlog(n)