Pergunta de entrevista da empresa IGT

General algorithm questions, some logic, and then actual implementation via using inheritance and abstract classes.