implementações em C++ e Scala