Mathematical olympiad challenges - Andreescu, Titu 1956- (Birkhaüser, 2009)