  We study the equilibrium computation problem for two classical resource
allocation games: atomic splittable congestion games and multimarket Cournot
oligopolies. For atomic splittable congestion games with singleton strategies
and player-specific affine cost functions, we devise the first polynomial time
algorithm computing a pure Nash equilibrium. Our algorithm is combinatorial and
computes the exact equilibrium assuming rational input. The idea is to compute
an equilibrium for an associated integrally-splittable singleton congestion
game in which the players can only split their demands in integral multiples of
a common packet size. While integral games have been considered in the
literature before, no polynomial time algorithm computing an equilibrium was
known. Also for this class, we devise the first polynomial time algorithm and
use it as a building block for our main algorithm.
  We then develop a polynomial time computable transformation mapping a
multimarket Cournot competition game with firm-specific affine price functions
and quadratic costs to an associated atomic splittable congestion game as
described above. The transformation preserves equilibria in either games and,
thus, leads -- via our first algorithm -- to a polynomial time algorithm
computing Cournot equilibria. Finally, our analysis for integrally-splittable
games implies new bounds on the difference between real and integral Cournot
equilibria. The bounds can be seen as a generalization of the recent bounds for
single market oligopolies obtained by Todd [2016].
