collection of algorithms necessary for programming competitions