Competitive Programming exposes various data structures and algorithms and presenting a set of logical or mathematical problems