Para resolver qualquer problema, não é necessário ser super inteligente. Você só precisa 1) ser capaz de dividir problemas em subproblemas, 2) ser um pouco mais inteligente do que o mais difícil dos subproblemas atômicos. O verdadeiro desafio é que o processo pode levar muito tempo.