Para resolver qualquer problema, você não precisa ser super inteligente. Você só precisa 1) ser capaz de dividir os 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.