Mathematical olympiad challenges - Andreescu, Titu (Birkhauser, 2000)