  The problem of finding envy-free allocations of indivisible goods can not
always be solved; therefore, it is common to study some relaxations such as
envy-free up to one good (EF1). Another property of interest for efficiency of
an allocation is the Pareto Optimality (PO). Under additive utility functions,
it is possible to find allocations EF1 and PO using Nash social welfare.
However, to find an allocation that maximizes the Nash social welfare is a
computationally hard problem. In this work we propose a polynomial time
algorithm which maximizes the utilitarian social welfare and at the same time
produces an allocation which is EF1 and PO in a special case of additive
utility functions called buyer utility functions. Moreover, a slight
modification of our algorithm produces an allocation which is envy-free up to
any positively valued good (EFX).
