GUIDE TO COMPETITIVE PROGRAMMING