  We consider a system described by a controlled bilinear Schr{\"o}dinger
equation with three external inputs. We provide a constructive method to
approximately steer the system from a given energy level to a superposition of
energy levels corresponding to a given probability distribution. The method is
based on adiabatic techniques and works if the spectrum of the Hamiltonian
admits eigenvalue intersections, with respect to variations of the controls,
and if the latter are conical. We provide sharp estimates of the relation
between the error and the controllability time, and we show how to improve
these estimates by selecting special control paths.
