competitive programming 4 by steven halim