Refazendo algoritmo e fazendo reajustes finais de refatoramento do codigo, algumas modificacoes feitas no enum e na logica